为你的网站开启 HSTS ,提高网站安全性

技术教程 SSL 2020-03-24 阅读:294

SSL

前言

SSL/TLS 安全评级(中文): https://myssl.com/

HSTS 简介

HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。服务器开启HSTS的方法是,当客户端通过HTTPS发出请求时,在服务器返回的超文本传输协议(HTTP)响应头中包含Strict-Transport-Security字段。非加密传输时设置的HSTS字段无效。

比如,https://example.com/ 的响应头含有Strict-Transport-Security: max-age=31536000; includeSubDomains。这意味着两点:

  • 在接下来的31536000秒(即一年)中,浏览器向example.com或其子域名发送HTTP请求时,必须采用HTTPS来发起连接。比如,用户点击超链接或在地址栏输入 http://www.example.com/ ,浏览器应当自动将 http 转写成 https,然后直接向 https://www.example.com/ 发送请求。
  • 在接下来的一年中,如果 example.com 服务器发送的TLS证书无效,用户不能忽略浏览器警告继续访问网站。
    来源:百度百科

Nginx 配置

Nginx 服务器中的配置最为简单,只需要编辑 Nginx 配置文件(如:/usr/local/nginx/conf/nginx.conf)将下面行添加到你的 HTTPS 配置的 server 块中即可:

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

网上看有些人直接添加在 server 块中无效的情况,或许可以试试直接插入到location ~ *php 内:

location ~ [^/]\.php(/|$) {
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
}

配置保存后重启 Nginx 服务。
宝塔nginx配置

其他配置方法

如果你改不了或者懒得改配置文件,可以采用下面的懒人方法。

将下面的代码插入到index.php中:

header("Strict-Transport-Security: max-age=63072000; includeSubdomains; preload");

编辑保存后记得重启一下。

测试

访问 https://myssl.com/ ,输入你的域名进行检测,当没有出现下图绿框内所示的提示,就表明配置成功了。
hsts

版权声明

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
文章链接:https://www.i8xi.com/41.html (转载时请注明本文出处及文章链接)

1条评论

    麦杰自动包装机

    这个方法值得借鉴

    游客 Windows7 84 天前回复

2020 © Typecho Theme Violet