乌云博客
专注互联网三十年

让你的网站在SSLLabs上A+ (Nginx)

ssl.png
本来只是想把ssl证书链不完整这个巨坑给填掉的,但偶然巧合之下一起把A+给搞定了…
因为在firefox跟android下访问网站会提示:使用了无效的安全证书,证书因为未提供证书发行链信而不被信任之类的好烦!
于是小白的我各种百度各种问啊…最后才知道原来是StartCom的pem没有跟签发的crt合并!
然后下载:http://www.startssl.com/certs/class2/sha2/pem/sub.class2.server.sha2.ca.pem
把crt的内容跟下载的pem内容合并…保存为新的pem文件,这就是ssl_certificate了
ssl_certificate_key依旧是key,申请域名证书时建立的私钥
然后完美解决!


接下来是重头戏!让你的网站在SSLLabs上A+!(我知道大牛们都不稀罕了…)
首先是站点的 Nginx 配置

server
    {
        listen 80;
        #listen [::]:80;
        server_name dobyi.com www.dobyi.com;
        rewrite ^/(.*) https://dobyi.com/$1 permanent;
    }
server
    {
        listen 443;
        server_name dobyi.com www.dobyi.com;
        include ssl.conf;
        ssl_certificate     /■■■■■/ssl/dobyi/dobyi.pem;
        ssl_certificate_key /■■■■■/ssl/dobyi/dobyi.key;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /■■■■■/dobyi.com;
        #... ...#
    }

然后是ssl.conf

  ssl on;
 
  ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
 
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;
 
  ssl_stapling on;
  ssl_stapling_verify on;
 
  ssl_prefer_server_ciphers on;
  ssl_dhparam /■■■■■/ssl/dhparam.pem;
 
  add_header Strict-Transport-Security max-age=15552000;

其中,dhparam.pem可以通过以下命令生成(这一步会花费较长时间,一般在五分钟左右,看vps性能而定):

openssl dhparam -out dhparam.pem 4096

最后给 Nginx 重启一下就可以啦~收工!

未经允许不得转载:乌云博客 » 让你的网站在SSLLabs上A+ (Nginx)

分享到:更多 ()