网站HTTPS的优化建议

话题早已烂大街了,熟透的大佬勿喷.

废话不多说,直接上我的配置吧.

    #HTTP_TO_HTTPS_START
    
    #强制跳转HTTPS
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    
    #开启HSTS,并设置有效期为:31536000秒
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";

    #禁止被嵌入框架
    add_header X-Frame-Options DENY;

    #防止在IE9、Chrome和Safari中的MIME类型混淆攻击
    add_header X-Content-Type-Options nosniff;

    #SSL证书和密匙路径
    ssl_certificate    /www/server/panel/vhost/cert/sm.link/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/sm.link/privkey.pem;

    #DH-Key交换密钥文件位置 生成命令:openssl dhparam -out dhparam.pem 2048
    ssl_dhparam /root/.ssh/dhparam.pem;

    #允许的TLS协议
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

    #加密套件
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

    #Specifies that server ciphers should be preferred over client ciphers when using the SSLv3 and TLS protocols.
    ssl_prefer_server_ciphers off;

    #Specifies a time during which a client may reuse the session parameters.
    ssl_session_timeout 1d; 

    ssl_session_cache builtin:1000 shared:SSL:10m;

    ssl_session_tickets off;

    resolver 8.8.8.8 1.1.1.1 valid=300s;

    resolver_timeout 5s;
    
    #HTTP_TO_HTTPS_END

Snipaste_2019-10-04_23-36-58.png

至于为什么要优化,主要是可以提高网站安全性(如DNS劫持等等),以及对搜索引擎的友好.具体自己度娘或者google吧
Snipaste_2019-10-04_23-41-38.png
Snipaste_2019-10-04_23-41-59.png
最后两张图是本站的SSL/TLS安全评估报告.
有兴趣的朋友可以自己去检测一下自己的站点如何,如果评级较低,那就是你的SSL安全优化还有待提高了.
MySSL安全月报数据:https://myssl.com/https_reports.html

国外的一个专业站点:https://www.ssllabs.com
国内搞的一个站点:https://myssl.com

最后修改:2019 年 12 月 29 日 08 : 22 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论