Nginx SSL配置教程

By | 2015年7月20日

紧接上篇免费申请SSL证书教程,这篇我们来介绍 Nginx SSL 的配置方法。reizhi 使用的是军哥的 lnmp 环境,Nginx 已经编译过 openssl  ,不需要再做额外操作,直接上手添加证书即可。

在沃通 SSL 证书申请通过之后,官方会发来证书下载链接,下载并解压后会获得以下几个压缩包。

我们只需要 for Nginx.zip 即可,再次解压后获得以下两个文件,上传至 VPS 的任意路径备用。

在配置之前,我们还需要生成一个密钥,SSH 登录 VPS 后运行以下命令,会在当前目录生成名为 “dhparam.pem” 的密钥文件,备用。

openssl dhparam -out dhparam.pem 2048

reizhi 将这三个文件都保存在了 /root 文件夹,现在我们切换到路径 /usr/local/nginx/conf/vhost ,打开虚拟主机对应的配置文件,例如 “roov.org.conf” ,在 server 区段增加以下内容:

listen 443 ssl;
ssl on;
ssl_certificate /root/roov.org.crt;
ssl_certificate_key /root/roov.org.key;
ssl_ciphers “EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH”;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
add_header Strict-Transport-Security “max-age=63072000; includeSubdomains; preload”; # HSTS
add_header X-Frame-Options DENY;
ssl_dhparam /root/dhparams.pem;
add_header X-Content-Type-Options nosniff;
ssl_session_tickets off; # nginx >= 1.5.9
ssl_stapling on; # nginx >= 1.3.7
ssl_stapling_verify on; # nginx => 1.3.7
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

其中,”ssl_certificate” 后填写 crt 文件所在路径,”ssl_certificate_key” 后填写 key 文件所在路径,该两文件由沃通提供。”ssl_dhparam” 后填写此前生成的 “dhparam.pem” 文件路径。保存后重启 Nginx 即可生效。在开启 HTTPS 之后 Nginx 负载会比之前略高,不过对于大多数博主而言是感受不到的。

如果需要强制开启 HTTPS ,可以将原 server 区段 “listen 80;” 前添加#变为 “#listen 80;” ,在末尾追加新的 server 区段。内容如下(域名部分对应修改):

server {
listen 80;
server_name roov.org;
rewrite ^(.*)$ https://$host$1 permanent;
}

即可实现强制跳转HTTPS。配置完成后可以到 SSL Labs 测试 SSL 强度,不出意外应该是A+评级。

2 thoughts on “Nginx SSL配置教程

发表评论

电子邮件地址不会被公开。 必填项已用*标注