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,以确保在服务器端重定向所有内容。