宝塔Nginx仅开启TLS1.2 TLS1.3安全配置
现在很多浏览器和行业标准要求网站支持 TLS 1.2 以上协议,旧的 SSLv3、TLS 1.0 和 1.1 存在安全漏洞。
如果你在用宝塔面板管理 Nginx,想只开启 TLS 1.2 和 TLS 1.3,其实只需要改一两处配置。
下面按零基础能直接上手的步骤来操作。
操作前确认环境
- 宝塔面板已安装,并且你已登录后台。
- 需要修改的网站已经添加了 SSL 证书(宝塔的“SSL”菜单里可以免费申请 Let's Encrypt 证书)。
- Nginx 版本建议在 1.15.0 以上,1.9.1 以上才支持 TLS 1.2,1.13.0 以上才支持 TLS 1.3。你可以在宝塔面板“软件商店”->“Nginx”里查看版本号。如果太低,先升级到最新稳定版。
配置方式一:单独修改某个网站
这种方法只影响一个站点,适合逐步调整。
- 进入宝塔面板 -> 网站 -> 找到目标网站 -> 点击“设置”。
- 在弹出窗口中选择“配置文件”(或者直接点“SSL”标签页下方的“配置文件”按钮)。
- 找到
ssl_protocols这一行,通常是这样的:
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
修改为只保留需要的协议:
ssl_protocols TLSv1.2 TLSv1.3;
- 检查同一文件里是否有
ssl_protocols其他位置重复,如果有,统一修改。 - 点击“保存”,然后点击“重载配置”或“重启 Nginx”。
配置方式二:全局修改所有网站
如果你希望所有站点都使用同样严格的协议,可以修改 Nginx 主配置。
- 宝塔面板 -> 软件商店 -> Nginx -> 设置 -> 点击“配置修改”。
- 在打开的
nginx.conf文件中找到http { }块内部,一般在ssl_protocols相关段落。如果找不到,可以在http { }内任意位置添加一行:
ssl_protocols TLSv1.2 TLSv1.3;
- 注意:全局配置中的
ssl_protocols会被单个网站配置里的值覆盖,所以如果某个网站单独写了ssl_protocols,则该网站不继承全局。 - 保存后,在软件商店 Nginx 里点击“重载配置”或“重启”。
常见问题与避坑
- 修改后提示配置错误? 绝大多数情况是因为
ssl_protocols的大小写或格式写错。正确写法TLSv1.2 TLSv1.3,不要写tlsv1.2或TLS1.2。宝塔保存时会自动检测语法,如果报错先还原再检查。 - 配置保存后网站无法访问? 可能是 Nginx 版本不支持 TLS 1.3。在宝塔面板里确认 Nginx 版本是否 ≥1.13.0。如果低于此版本,建议升级。升级后记得重新添加 SSL 证书。
- 明明改了全局,部分网站仍然支持 TLS 1.0? 原因通常是那个网站自己的配置文件中有独立的
ssl_protocols指令,它覆盖了全局设置。需要逐个网站检查“配置文件”中的ssl_protocols并修改。 - 手机端有时连接失败? 部分老旧设备不支持 TLS 1.2 或 1.3,如果业务必须兼容,请谨慎操作。建议保留 TLS 1.2 即可,TLS 1.3 兼容性较好,但仍有少量设备不支持。
验证配置是否生效
修改完成后,不要只靠感觉。
用下面三种方法确认:
- 在线 SSL 检测工具:打开 https://www.ssllabs.com/ssltest/(或国内镜像 https://myssl.com),输入你的域名。检测结果会列出支持的协议版本,应只看到 TLS 1.2 和 1.3,其他为红色“No”。
- curl 命令行测试(如果你有 SSH 权限):
# 测试 TLS 1.2 是否可用(应成功返回 HTTP 响应)
curl --tlsv1.2 --tls-max 1.2 -I https://你的域名
# 测试 TLS 1.1 是否被拒绝(应握手失败)
curl --tlsv1.1 -I https://你的域名
如果 TLS 1.1 握手失败(报错 (35) error:14094410...),说明配置生效。
- 浏览器开发者工具:按 F12 -> 网络(Network)-> 点击任意 HTTPS 请求 -> 查看“安全”标签,可以看到连接所用的协议版本。
配置完成后建议定期检查,因为宝塔面板更新或 Nginx 升级有时会重置配置,需要重新修改。
如果你在操作中遇到其他错误,可以检查 Nginx 错误日志(宝塔面板 -> 网站 -> 设置 -> 网站日志)。
希望这篇教程能帮你安全又快速地把网站“锁”在 TLS 1.2 和 1.3 上。