FPs

Articles with the https tag

《HTTP/2 基础教程》读书笔记

Learning_HTTP_2

最近拿到一本新书:《HTTP/2 基础教程》,薄薄一本,除去附录100页不到,卖的挺贵,49元。《精通正则表达式》的译者余晟为这书写了序,也在他的个人公众号上推荐,读完却觉得作为基础教程还不错,翻译上觉得略生硬。作点简单的笔记,方便以后“按图索骥”。

Continue ->

关闭HPKP 和HSTS的方法

大家对于HSTS 一般都比较熟悉了,对HPKP 可能比较陌生,简单来说由于CA 的工作模式,导致别人有可能通过其他CA 签发你网站的证书,这个时候你就需要有一条头信息声明你网站的证书的指纹是什么。
关于HSTS 和HPKP 的介绍可以查看Jerry Qu 的这2篇文章:

HSTS 和HPKP 都是通过头信息传递给浏览器,浏览器都会根据max-age 缓存起来,所以在添加了HSTS 和HPKP 了之后,想要回滚,就没有在服务端回滚程序那么方便了。

有以下几种情况会遇到要关闭/移除:

HSTS: 运维同学在刚刚做HTTPS 的时候,开启了HSTS,甚至加了includeSubDomains,某些老客户端访问HTTP的接口的时候跳到HTTS,由于SNI、加密套件兼容性等问题出现故障;

HPKP: 无论是用根证书、中间证书还是站点证书签发了指纹,虽然HPKP有备份方案,即发送多个pin-sha,但是还是需要准备证书出现故障,要关闭HPKP。另外要记得添加report-uri,这样出错时,服务端能主动的发现上报的信息。

个人觉得HPKP 和HSTS 在设计上实在太像了,如下例子:

HSTS:

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

HPKP:

Public-Key-Pins:
      pin-sha256="d6qzRu9zOECb90Uez27xWltNsj0e1Md7GkYYkVoZWmM=";
      pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g=";
      pin-sha256="LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=";
      max-age=10000; includeSubDomains

所以在关闭,或者说移除HSTS或HPKP的方式上也是一样的。

即max-age 字段指定为0

看下RFC:

HTST(RFC6797):

The max-age value is essentially a "time to live" value relative
to the reception time of the STS header field.

If the max-age header field value token has a value of zero, the
UA MUST remove its cached HSTS Policy information (including the
includeSubDomains directive, if asserted) if the HSTS Host is
known, or the UA MUST NOT note this HSTS Host if it is not yet
known.

HPKP(RFC7469):

The max-age value is essentially a "time to live" value relative to
the time of the most recent observation of the PKP header field.  If
the max-age header field value token has a value of 0, the UA MUST
remove its cached Pinning Policy information (including the
includeSubDomains directive, if asserted) if the Pinned Host is
Known, or, MUST NOT note this Pinned Host if it is not yet Known.

果然很像。。。居然照抄。
另外includeSubdomains 两者的定义也是一样的。


《Web 性能权威指南》读书笔记

bookcover

《Web 性能权威指南》的起因是在看《HTTPS 权威指南》的时候,看到优化相关的,然后就延伸到想看一下这本书。
这本书,作者提供了免费的在线英文版,建议还是看英文的,中文翻译版有些地方略生硬。

TCP 优化

这部分从协议出发,讲解了优化的要点。

三次握手带来的延迟使得创建每创建一个新的TCP连接都要付出很大的代价。而这也决定了提高TCP应用性能的关键,在于想办法重用连接。

可以看到重用连接在后续的HTTP 优化都是重点。
第二章分内容和《HTTPS 权威指南》的9.1 有重合,可以都看下。

把服务器内核升级到最新版本(Linux: 3.2+)

新内核能获得更好的性能,例如采用了PRR,比例降速算法。

Continue ->