导语
网站早就上了 HTTPS,但打开检测工具一看:协议还在用 TLS 1.0、加密套件还是 RC4、没有 HSTS——等于大门上了锁,钥匙却挂在门口。HTTPS 只保证传输加密,配置是否安全是另一回事。
时至今日仍有大量站点启用 TLS 1.0/1.1 这类早已废弃的协议,使用 RC4、3DES 等已被攻破的算法,一旦遭遇降级攻击或中间人攻击,加密形同虚设。更麻烦的是,很多站长以为”上了证书就等于安全”,对协议版本、加密套件、响应头完全不了解,导致 HTTPS 只是形式上存在。本文以 Nginx 为例,从证书部署、协议版本、加密套件到 HSTS 与 OCSP Stapling,给出可直接复制的 SSL 安全配置,宝塔面板同样适用。
一、先看看你的 SSL 配置有什么问题
常见问题清单,对照自查:
- 启用了 TLS 1.0/1.1:存在 POODLE、BEAST 等已知漏洞,主流浏览器早已禁用;
- 未配置 HSTS:用户首次访问仍可能被中间人劫持到 HTTP,密码照样泄露;
- 加密套件过时:还在用 RC4、3DES、CBC 模式的套件,安全性不可靠;
- 未开启 OCSP Stapling:每次握手浏览器都要额外查询证书吊销状态,又慢又有被阻断的风险。
二、证书部署与 TLS 协议版本控制(宝塔操作)
宝塔面板部署证书很简单:进入”网站 → 对应站点 → SSL”,选择 Let’s Encrypt 免费申请,或粘贴购买的 DV/OV 证书(fullchain.pem 和 privkey.pem),然后勾选”强制 HTTPS”。证书只是第一步,关键是协议版本——TLS 1.3 已普及多年,握手更快、安全性更高,建议直接开启(Nginx 1.18+ 和 OpenSSL 1.1.1+ 均原生支持)。完整的协议与套件控制见下一节的完整配置,其中 ssl_protocols TLSv1.2 TLSv1.3; 一行即负责关闭旧协议。
三、现代加密套件 + HSTS + OCSP Stapling 完整配置
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /www/server/panel/vhost/cert/example.com/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/example.com/privkey.pem;
# 协议与加密套件
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_tickets off;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 223.5.5.5 119.29.29.29 valid=300s;
# HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
}
配置完成后 nginx -t 检查语法,nginx -s reload 生效。如果接了 CDN,注意把 HSTS 等响应头同步到 CDN 的自定义响应头配置中(速度网络等主流 CDN 均支持)。
四、配置完必须做的检测
改完配置别急着走,用以下方式验证:
- SSL Labs(ssllabs.com/ssltest):提交域名,拿到 A/A+ 才算合格;
- myssl.com:国内检测工具,给出协议、套件、证书链的详细报告;
- 命令行快速验证:
# 查看服务器支持的 TLS 版本(出现 TLSv1.3 即代表已启用)
openssl s_client -connect example.com:443 -tls1_3 &1 | grep "Protocol"
# 查看 OCSP Stapling 是否生效(出现 successful 即正常)
openssl s_client -connect example.com:443 -status &1 | grep "OCSP Response"
另外提醒:证书要设置到期监控,建议在宝塔面板开启”证书到期提醒”,或接入第三方监控,避免证书过期导致业务中断——这是 SSL 事故里最常见的一种。
五、总结
SSL 安全配置的核心就四件事:关掉旧协议、用现代加密套件、开 HSTS、开 OCSP Stapling。按本文配置后,站点在 SSL Labs 上基本能拿到 A 级评分。如果对安全等级有更高要求,或者服务器资源紧张,可以考虑接入速度网络等 CDN 厂商的 SSL 加速方案,把证书托管和 TLS 卸载放到边缘节点,既安全又省源站资源。本文由速度网络技术团队整理。
