Nginx:加强SSL安全等级

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

openssl dhparam -out dhparam.pem 2048

将将两个证书和这个生成的pem文件都保存在了 /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+评级。

《Nginx:加强SSL安全等级》有1个想法

发表评论

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

7699