Nginx环境下配置HTTPS

现在,你应该能在访问https://feiyang.li/ 的时候,在地址栏里看到一个漂亮的小绿锁


作为肤浅的人,为了这么洋气的小绿锁也要上HTTPS~ 更多见: iii.run


申请免费SSL证书

普通的SSL证书动辄好几千,简直令人发指。不过别担心,我找到了3个免费申请HTTPS证书的方式。


Nginx环境下配置HTTPS_第1张图片
  • StartSSL也免费提供了一个证书(纯英文)
    申请地址:https://www.startssl.com/Account?r=L1ZhbGlkYXRl
  • 阿里云免费提供的证书
    https://common-buy.aliyun.com/?spm=5176.7968328.231195.3.Vh92u7&commodityCode=cas#/buy
    Nginx环境下配置HTTPS_第2张图片
  • 腾讯云免费申请
    https://console.qcloud.com/ssl
    Nginx环境下配置HTTPS_第3张图片

获得证书之后,下载至本地。

VPS上安装SSL证书

以Nginx 为例

获取证书

Nginx文件夹内获得SSL证书文件 1_www.domain.com_bundle.crt 和私钥文件 2_www.domain.com.key,

1_www.domain.com_bundle.crt 文件包括两段证书代码 “-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”,
2_www.domain.com.key 文件包括一段私钥代码“-----BEGIN RSA PRIVATE KEY-----”和“-----END RSA PRIVATE KEY-----”。

Nginx环境下配置HTTPS_第4张图片

上传和部署SSL证书

将域名 www.domain.com 的证书文件1_www.domain.com_bundle.crt 、私钥文件2_www.domain.com.key保存到同一个目录,例如/usr/local/nginx/conf目录下。更新Nginx根目录下 conf/nginx.conf 文件如下:

server {
        listen 443;
        server_name www.domain.com; #填写绑定证书的域名
        ssl on;
        ssl_certificate 1_www.domain.com_bundle.crt;
        ssl_certificate_key 2_www.domain.com.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
        ssl_prefer_server_ciphers on;
        location / {
            root   html; #站点目录
            index  index.html index.htm;
        }
    }
配置文件参数 说明
listen 443 SSL访问端口号为443
ssl on 启用SSL功能
ssl_certificate 证书文件
ssl_certificate_key 私钥文件
ssl_protocols 使用的协议
ssl_ciphers 配置加密套件,写法遵循openssl标准

重启Nginx

输入 nginx -s reload :修改配置后重新加载生效
可以看到SSL证书生效,且HTTPS可以访问站点。

Nginx环境下配置HTTPS_第5张图片

你可能感兴趣的:(Nginx环境下配置HTTPS)