宝塔Nginx TLS1.2 TLS1.3配置
为什么要在宝塔Nginx中配置TLS1.2和TLS1.3
TLS协议负责加密网站与用户浏览器之间的数据传输。
如果只使用老旧TLS1.0或1.1,不仅加密强度低,还容易被主流浏览器标记为不安全。
开启TLS1.2和TLS1.3既保证兼容性(TLS1.2支持绝大多数设备),又能用上TLS1.3的更快握手和更强加密。
本文专门针对宝塔面板管理的Nginx环境,从零开始教你完成配置。
配置前的准备工作
- 确保已安装宝塔面板:版本不限,但建议升级到最新版。面板后台路径:
http://你的服务器IP:8888。 - 确保站点已绑定域名:并且域名的DNS已经解析到服务器IP。
- 为站点申请SSL证书:推荐在宝塔面板内直接申请Let's Encrypt免费证书(面板 -> 网站 -> 设置 -> SSL -> Let's Encrypt)。如果已有其他证书,请先上传。
- 备份Nginx配置文件:在修改前点击宝塔面板左侧“文件” -> 找到
/www/server/nginx/conf/nginx.conf或站点配置文件/www/server/panel/vhost/nginx/你的域名.conf,复制一份到安全位置。
在宝塔面板中配置TLS1.2和TLS1.3
有两种常用方法:通过面板图形界面设置,或手动编辑配置文件。
推荐新手先尝试图形化操作。
方法一:面板图形化配置(推荐)
- 进入宝塔面板,点击左侧“网站”。
- 找到你要配置的目标网站,点击右侧“设置”。
- 在弹出的窗口中选择“SSL”标签页。
- 在“SSL协议”下拉框中,选择 TLSv1.2 TLSv1.3(注意:不同宝塔版本可能显示为“TLSv1.3 TLSv1.2”,选择包含两者且不包含TLSv1.0/1.1的选项即可)。
- 如果下拉框没有这个选项,手动编辑配置(见方法二)。
- 点击“保存”后,面板会自动重载Nginx。
- 重要:保存后稍等几秒,然后点击“重启”按钮(有时需要手动重启Nginx才能生效)。
方法二:手动编辑Nginx配置文件
如果面板没有提供理想的选项,或你想更精细控制,可以手动修改站点配置文件。
- 进入宝塔面板 -> 网站 -> 目标网站 -> 设置 -> 配置文件(或者直接点击网站列表右侧的“配置文件”按钮)。
- 在
server块中找到类似下面的ssl_protocols配置行:
ssl_protocols TLSv1.1 TLSv1.2;
- 将其修改为只包含TLS1.2和TLS1.3:
ssl_protocols TLSv1.2 TLSv1.3;
- 如果文件中没有这行,请手动添加在
ssl_certificate和ssl_certificate_key的下面,确保在同一个server块内。 - 检查SSL相关配置是否完整,例如:
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;
ssl_prefer_server_ciphers on;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
- 保存文件,然后点击面板顶部“服务” -> Nginx -> 重载配置(或重启)。
避坑指南:新手最容易出错的地方
- 配置后网站无法访问:最常见原因是ssl_protocols写错了(比如漏了冒号),或者同时开启了TLS1.0但被浏览器拒绝。建议先只启用TLS1.2和TLS1.3,若部分老旧设备(如旧版Android、Windows 7的IE)无法访问,再考虑临时加回TLS1.1。
- SSL协议选项灰色不可选:说明该站点未正确部署SSL证书。先走完证书申请流程。
- 修改配置文件后浏览器仍然提示TLS1.0:检查是否同时存在其他Nginx配置文件(如主配置文件
nginx.conf的http块)覆盖了站点配置。在宝塔中,主配置文件默认不包含ssl_protocols,但如果自己手动添加过,会覆盖站点的设置。 - 使用了CDN:如果你开启了CDN(如Cloudflare),TLS协议可能由CDN节点决定,需要在CDN面板中设置。宝塔内的配置仅对源站有效。
如何验证TLS1.2和TLS1.3是否成功启用
方法A:浏览器开发者工具
- 用最新版Chrome或Edge访问你的网站。
- 按F12打开开发者工具,切换到“安全”或“网络”标签。
- 点击网页任一请求,查看“Connection”或“Protocol”信息,如果显示
TLS 1.3或TLS 1.2即成功。
方法B:在线检测工具
- 打开SSLLabs的SSL Server Test(
https://www.ssllabs.com/ssltest/)。 - 输入你的域名,等待检测完成。
- 在“Protocols”部分,检查是否只列出了TLS 1.2和TLS 1.3(且TLS 1.0/1.1显示“No”)。
方法C:命令行检测(有服务器SSH权限)
openssl s_client -connect 你的域名:443 -tls1_2 # 测试TLS1.2,应返回证书链
openssl s_client -connect 你的域名:443 -tls1_3 # 测试TLS1.3,应返回证书链
如果两个命令都能正常显示证书信息,说明对应协议已启用。
常见问题解答(FAQ)
Q:配置后网站加载变慢,怎么办?
A:TLS1.3本身握手更快,通常不会变慢。如果变慢,检查是否启用了过多的密码套件或开启了旧版协议。建议只保留现代加密套件,并启用OCSP Stapling。
Q:我需要同时支持TLS1.2和TLS1.3,但某个旧应用报错。
A:旧应用可能只支持TLS1.0/1.1。如果必须在安全性和兼容性之间平衡,可以保留TLS1.2和TLS1.3,然后单独为旧应用创建一个子域名(或使用不同端口)单独配置更低的TLS版本。不推荐在主力站点上保留老旧协议。
Q:宝塔面板里找不到SSL协议选项。
A:宝塔版本较旧时可能没有该下拉框。请按照“方法二”手动编辑配置文件。如果手动编辑后无法保存,检查面板文件权限。
总结
通过以上步骤,你应该已经成功在宝塔Nginx上配置了TLS1.2和TLS1.3。
记得每次修改配置后都要重载Nginx,并做一遍验证,确保配置生效且网站正常运行。
如果你在操作中遇到其他报错,可以先查看Nginx错误日志(宝塔面板 -> 网站 -> 目标网站 -> 错误日志),定位错误行后再回看本文避坑部分。
如果你正在处理宝塔Nginx TLS1.2 TLS1.3配置,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。