证书装了不等于站点安全。TLS版本太低、密码套件太弱,照样会被中间人攻击和协议降级攻击盯上。尤其是站长手里的小站,很多用的还是默认配置,老旧的TLS 1.0/1.1根本没关。
下面的配置直接屏蔽TLS 1.0/1.1,只保留TLS 1.2和1.3,同时启用HSTS和OCSP Stapling,让浏览器只走安全通道。
server {
listen 443 ssl http2;
ssl_certificate /etc/nginx/ssl/site.crt;
ssl_certificate_key /etc/nginx/ssl/site.key;
ssl_protocols 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;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1h;
ssl_session_tickets off;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/nginx/ssl/chain.crt;
}
配置完用openssl s_client -connect yourdomain.com:443 -tls1_1测试,正确结果是握手失败。再用SSL Labs跑一下,A+就稳了。
Windows的IIS用户也能照这个思路:在注册表里关闭TLS 1.0/1.1的服务器端,并启用HSTS响应头。原理一样,只是换了个配置入口。
A5创业网 版权所有