OCSP地址即SSL证书中的OCSP验签服务器
最近在做的一个项目上线,前线反馈某些地区访问网站显示白屏,直接影响当地用户使用。公司系统是使用公司自研专用的浏览器登录的,是基于早期谷歌浏览器的开源组件开发的,常出现谷歌访问正常而专用浏览器不行的情况。通过远程复现问题并抓包,我们发现在客户电脑上每次打开专用浏览器都会先访问一个国外证书网站在继续请求,而访问国外证书的网站的不稳定性导致了无法正常打开网站。由于没了解过浏览器证书的校验,我先百度了下SSL网站的校验流程。
1. 客户端发送信息,带上支持的SSL或者TLS版本(注意不同浏览器版本支持不同)
2. 服务器返回确认使用的加密通信协议版本以及加密随机数和证书
3. 浏览器验证证书 -> OCSP或者CRL 结合自带truststore
抓包显示是卡在第三步,访问证书的OCSP地址获取证书授权信息进行校验。
对于这个问题解决方案有2个,1、升级浏览器内核,开发周期较长,难度大。2、购买本地化OCSP地址的证书,这样获取证书的信息的链接能正常请求。
我们服务部署在阿里云上门,证书也是在阿里云上面购买的。阿里云证书有免费DV证书,还有通配符DV证书 2000左右 OV证书5000左右。我们实际使用中发现2000左右的DV证书 证书授权信息地址是国外的,而5000左右的OV证书证书授权信息地址是国内的地址。所以对于生产环境选用OV证书更为稳定。大家可以看看访问网站的证书的详细信息中授权信息访问那一行,可以知道浏览器在校验这个证书时会去访问的授权信息地址了。
在给网站换上了阿里云的OV证书后,地区反馈访问网站已经正常了,这个访问白屏的问题解决了。
对于国内业务的网站推荐购买具有本地化ocsp功能的证书,这样避免出现奇葩的网络问题