宝塔面板中需先通过Let’s Encrypt申请SSL证书并启用强制HTTPS,再在Nginx配置的443 server块内添加HSTS头,或通过网站防火墙插件注入该响应头,最后用Chrome验证strict-transport-security响应头及HTTP自动跳转。

如果您在宝塔面板中已部署网站但未启用HTTPS加密,或虽已配置SSL证书却未强制跳转至HTTPS访问,则用户可能仍通过HTTP明文传输数据。以下是实现SSL证书配置与HSTS强制加密的具体操作步骤:
一、通过宝塔面板申请并部署SSL证书
宝塔面板支持从Let’s Encrypt免费申请SSL证书,自动完成验证与部署,适用于已解析到服务器且80端口开放的域名。
1、登录宝塔面板,在左侧菜单栏点击网站,进入站点列表页面。
2、找到目标站点,点击右侧设置按钮。
3、在站点设置页面中,切换至SSL选项卡。
4、在证书类型下拉框中选择Let's Encrypt,输入管理员邮箱(用于证书到期提醒)。
5、勾选需要申请证书的域名(支持主域名及子域名),点击申请按钮。
6、等待申请成功提示后,点击启用SSL,再点击强制HTTPS开关使其变为蓝色(此步仅开启301跳转,尚未启用HSTS)。
二、手动编辑Nginx配置文件以添加HSTS头
HSTS(HTTP Strict Transport Security)通过响应头告知浏览器仅允许HTTPS访问,防止SSL剥离攻击;需在Nginx配置中显式添加header指令,且必须在HTTPS server块内生效。
1、返回该站点的设置页面,切换至配置文件选项卡。
2、在打开的Nginx配置内容中,定位到以listen 443 ssl http2开头的server块(即HTTPS服务块)。
3、在该server块内的location / { ... }外部、但仍在server大括号内,插入以下行:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
4、确认语法无误后,点击保存,再点击右上角重载配置按钮使Nginx重新加载配置。
三、通过宝塔防火墙模块启用HSTS(替代方案)
若不希望直接修改Nginx配置文件,可借助宝塔官方插件“网站防火墙(WAF)”中的安全策略功能注入HSTS头,适用于已安装并启用该插件的环境。
1、在宝塔面板首页,点击软件商店,搜索并确保网站防火墙(专业版)处于已安装且已启用状态。
2、进入网站防火墙管理界面,选择对应站点。
3、点击左侧菜单中的安全策略,向下滚动至HTTP响应头管理区域。
4、点击添加响应头,填写:
名称:Strict-Transport-Security
值:max-age=31536000; includeSubDomains; preload
作用域:HTTPS
5、保存设置后,点击重启防火墙以应用变更。
四、验证HSTS是否生效
HSTS头仅在HTTPS响应中有效,且浏览器需首次接收并缓存该策略后才开始执行强制跳转;验证需使用支持HSTS的浏览器(如Chrome、Edge)并检查网络响应头。
1、使用Chrome浏览器访问站点的HTTPS地址(例如https://example.com)。
2、按F12打开开发者工具,切换至网络(Network)标签页。
3、刷新页面,在左侧请求列表中点击主文档(Name列显示为域名或/),右侧查看响应标头(Response Headers)。
4、确认存在字段:strict-transport-security: max-age=31536000; includeSubDomains; preload。
5、关闭所有浏览器窗口后,尝试在地址栏输入http://example.com,观察是否自动跳转至https://且地址栏显示锁形图标。










