[SSL]Let's Encrypt浏览器提示不合法解决方法
在配置Let's Encrypt证书时,发现部分浏览器会提示不安全;虽然Goole、Apple等公司的旗下产品对SSL证书有严格的管控,但是没理由不兼容Let's Encrypt的证书。
我是用的是Nginx作为Http服务器,并更新到1.19
的版本上。
server {
listen 443 ssl;
server_name map.xxxx.vip;
ssl_certificate xxx.crt;
ssl_certificate_key xxx.key;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 30m;
location / {
proxy_redirect off;
proxy_pass https://xxx.app;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
1. 配置符合PFS规范的加密套件
# 指定加密方式
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
# 指定TLS协议 TLSv1 TLSv1.1 TLSv1.2
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# 由服务器决定加密方式
ssl_prefer_server_ciphers on;
#
# 优化ssl
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 30m;
2. 补全证书链导
部分证书颁发商,提供的证书并不包含根节点CA证书,可能会导致部分系统无法验证有效性。
可以在证书链下载/证书链修复这个网站上传公钥,会自动帮你修复证书链,然后将ssl_certificate
替换为新公钥即可。