如何在Nginx上配置HSTS

发布时间:2017/6/5 20:40:30 打印 字号:

HTTP严格传输安全性(也称为HSTS)允许网站在客户端执行SSL使用。HSTS让浏览器知道它只会使用HTTPS协议,这将导致更好的安全性来阻止各种中间人的攻击。它以简单的语言工作的方式是:远程服务器返回HSTS头,浏览器接收HSTS头,从那时起,它将开始强制SSL使用在“max-age”中指定的时间头。

如何使用Nginx启用HSTS?

就像在您所拥有的SSL网站的虚拟主机配置中添加新的响应头一样简单,例如:

add_header Strict-Transport-Security“max-age = 31536000; includeSubdomains”;

在服务器块上,它将如下所示:

服务器{access_log关闭log_not_found关闭error_log logs / yoursite-error_log warn;
        听xx.xx.xx.xx:443 ssl spdy;
        server_name www.gworg.com;
        add_header Strict-Transport-Security“max-age = 31536000; includeSubdomains”;

说明:

'max-age'变量指定您将要强制客户端使用HTTPS而不是HTTP的时间(秒),在此示例中我指定了1年。

'includeSubdomains'选项只是为了确保所有子域也被迫使用HTTPS。

我如何检查HSTS是否正常工作?

随着我们所有强大和心爱的卷曲命令:

[user @ server〜] $ curl -I https://www.gworg.com -k
HTTP / 1.1 200 OK
服务器:nginx
日期:Fri,07 Nov 2014 11:38:19 GMT
Content-Type:text / html; 字符集= UTF-8
连接:保持活着
X-Pingback:https://www.gworg.com/xmlrpc.php
严格运输安全:max-age = 31536000; includeSubdomains

如果您看到Strict-Transport-Security:max-age = 31536000; includeSubdomains,那么HSTS正常工作。

HSTS是非常有用的,但是您应该始终将一个从URL的URL重定向到HTTPS,以确保在服务器端重定向所有内容。