虽然还远远配不上“架构”这两个字,不过好像也找不到什么更合适的词。
继续阅读网站架构改进踩坑小结标签: Apache2
Apache2开启OCSP Stapling
最近感觉网站加载的速度有点慢,在“等待响应”阶段花了很多时间,于是想着优化一下,能优化一点是一点。除了放弃JetPack插件以外,考虑到可能在HTTPS上也受到一点影响,便试着从这里着手。
OCSP 是一个在线证书查询接口,它建立一个可实时响应的机制,让浏览器可以实时查询每一张证书的有效性,解决了 CRL 的实时性问题,但是 OCSP 也引入了一个性能问题,某些客户端会在 SSL 握手时去实时查询 OCSP 接口,并在得到结果前会阻塞后续流程,这对性能影响很大,严重影响用户体验。(OCSP 地址也在证书的详细信息中)
阿里云 CDN HTTPS 最佳实践——OCSP Stapling
OCSP Stapling 就是为了解决 OCSP 性能问题而生的,其原理是:在 SSL 握手时,服务器去证书 CA 查询 OCSP 接口,并将 OCSP 查询结果通过 Certificate Status 消息发送给浏览器,从而让浏览器跳过自己去验证的过程而直接拿到结果,OCSP 响应本身有了签名,无法伪造,所以 OCSP Stapling 既提高了效率也不会影响安全性。另外服务器有更好的网络,能更快地获取到 OCSP 结果,同时也可以将结果缓存起来,极大的提高了性能、效率和用户体验。
百度简单搜了一下(懒得开那啥上Google),大多是Nginx的配置,并且有些不知道为什么看起来还挺复杂的。对于我这种单站点Apache2的设置其实很简单,只要在 /etc/apache2/mods-enabled/ssl.conf(Ubuntu或Debian包的默认位置,自行编译的话可能在 conf/extra/httpd-ssl.conf ) 中加入以下两行:
SSLUseStapling On SSLStaplingCache "shmcb:ssl_stapling(32768)"
然后重启Apache就可以了。不过究竟有多少提升,没能仔细前后对比过所以不好说,配合禁用插件总的效果还是有的。
检验OSCP响应和其他复杂情况的配置方法,参考Apache官方文档。