[http] http HSTS

一 介绍

HSTS是 HTTP Strict Transport Security的全称。

就是强制浏览器必须使用HTTPS链接进行通讯的意思。如果浏览器不支持TLS访问,那么它就不能访问网站。为了防止中间人攻击。

这里,应该理解成浏览器,也就是客户端软件对用户进行的约束。

HSTS机制,在TLS层看来是没有任何区别的。区别在于浏览器端,浏览器端不提供忽略安全问题强制访问的按钮。好比 curl不提供-k参数。

如:

 

 

 

二 机制

HSTS是Server的属性。Client需要知道Server的这个属性。

有两个方法、

第一,提前约定。浏览器提前预置了这样的配置。默认就知道什么域名就是hsts的。

每次发起连接的时候就直接使用https,如果证书验证识别,将无法访问该网站。

第二,Server告诉client,它是HSTS的。

server为了这个目的,需要做两个事情。

A,用302把http重定向到https。

B,在https的response header里添加hsts的头。 client收到后,就会记录下来这个信息了。

这个信息里,有超时时间属性。

 

三 协议

举两个例子,头是这样的:

Strict-Transport-Security: max-age=31536000
Strict-Transport-Security: max-age=15768000 ; includeSubDomains

 

HSTS头,一共就支持这两个命令,max-age和includeSubDomains

max-age的单位是秒。

见:https://tools.ietf.org/html/rfc6797#section-6.1

 

四 nginx配置方法

参考:[nginx][http] nginx关于http header的设置

 

posted on 2020-04-20 15:35  toong  阅读(418)  评论(0编辑  收藏  举报