用户反馈一个通过 CDN 加速的 CSS 资源,访问速度很慢,测试在 PC 上访问超过了 3 秒。
客户端发起一次 HTTPS 请求,在 SSL 握手的过程中,CDN 服务端将证书信息发给了客户端, 客户端根据证书信息,发起在线证书查询来校验证书合法性,但是由于证书校验服务地址不可达导 致证书校验失败,客户端间隔一秒继续重试 2 次均失败,耗时 3 秒以后客户端停止校验,继续完成 后续的 SSL 握手,造成最终访问慢的现象。 27 > 一次 HTTPS 访问慢的案例分析 如何优化 OCSP 的原理决定了其存在隐私和性能问题: (1)浏览器直接去请求第三方 CA(Certificate Authority, 数字证书认证机构),会暴露网站的访 客(CA 机构会知道哪些用户在访问我们的网站); (2)浏览器进行 OCSP 查询会降低 HTTPS 性能(访问网站会变慢) OCSP 实时查询会增加客户 端的性能开销, 本案例就是这种情况。 针对这种情况,OCSP Stapling 出现了。OCSP Stapling 可以将原本需要客户端实时发起的 OCSP 请求转嫁给服务端,Web 端将主动获取 OCSP 查询结果,并随证书一起发送给客户端,以 此让客户端跳过自己去寻求验证的过程,提高 TLS 握手效率,从而提高 HTTPS 性能。阿里云 CDN 也支持 OCSP Stapling 功能,可以由 CDN 服务器查询 OCSP 信息,从而降低客户端验证请求延迟, 减少等待查询结果的响应时间。具体配置方法和原理介绍可以参考 设置 OCSP Stapling :https://help.aliyun.com/document_detail/160607.html 不过本案例中,验证过开启 CDN 的 OCSP Stapling 功能也无法解决,主要的问题是 OCSP Server 端在国内访问整体质量均不佳,主要是由于跨境链路和运营商的问题造成的,因此导致 CDN 去请求 OCSP 一样质量不佳。对于这种情况,如果是直接访问的 Nginx,可以通过一些方式生成 OCSP Stapling 文件部署到 Nginx 中(这里不展开介绍)。如果是通过 CDN 等代理服务器方式, 由于不能单独配置 OCSP Stapling 文件,最好的方式还是更换证书来解决。资源来源于《对象存储&视频云35条实战秘籍》,下载链接:https://developer.aliyun.com/topic/download?id=8226
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。