nginx配置SSL启用HTTPS

字数 260阅读 2529

启用SSL开启HTTPS访问已经是当今的主流趋势了,本文旨在提供在nginx上快速配置SSL的简易指南。

申请证书

现在证书越来越便宜,GoDaddy证书只需要几美元,甚至StartSSL、AlphaSSL、腾讯云或七牛云等都可以免费申请到SSL证书。如何申请免费证书本文不再赘述。

上传证书至服务器

把申请到的证书文件(包含证书链和私钥)上传到服务器,保存到一个nginx可以读取到的地方,如/home/ssl/

  • /home/ssl/yourname.cer 为证书链
  • /home/ssl/yourname.key 为公钥

修改nginx配置

在nginx配置文件中,把原来server块中的80端口(http访问)的语句改为443端口,并引入SSL各项配置,同时启用HSTS(HTTP严格传输安全):

server {
    listen 443 ssl;
    server_name yourname;
    root /home/www/yourname;
    index index.php index.html; 

    ssl_certificate /home/ssl/yourname.crt;
    ssl_certificate_key /home/ssl/yourname.key;
    
    ssl_stapling on;
    ssl_stapling_verify on;

    add_header Strict-Transport-Security "max-age=31536000";

    access_log /var/log/nginx/yourname.log combined;

    location / {
                #
        }   
}

然后再新建一个server块,目的是把http访问重定向到https:

server {  
    listen 80;
    server_name yourname;
    rewrite     ^   https://$host$request_uri? permanent;
}

保存后重载nginx即可。

service nginx reload

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
  • Nginx简介 解决基于进程模型产生的C10K问题,请求时即使无状态连接如web服务都无法达到并发响应量级一万的现...
  • Page 1:nginx 服务器安装及配置文件详解 CentOS 6.2 x86_64 安装 nginx 1.1 ...
  • 配置运行Nginx服务器用户(组) 用于配置运行Nginx服务器用户(组)的指令是user,其语法格式为: use...
  • 1.简介:  Nginx:engine X ,2002年,开源,商业版 http协议:web服务器(类似于ht...