不同CA签发的SSL证书的OCSP验签速度有所不同,这是因为他们的使用的不同OCSP服务器。需要了解OCSP验签服务器的访问速度,首先需要知道如何查询OCSP服务器IP地址。1. 查看“授权中心信息访问权限”即可获取OCSP的服务器。菜单路径:详细信息->证书字段->授权中心信息访问权限->OCSP响应程序,即可查看到OCSP的URL。图片5. 运行->cmd,ping出该URL即可获取到该OCSP服务器IP地址。图片以上是国内节点ping出的锐安信SSL证书的OCSP服务器IP地址以及访问速度。 其他证书均可参照上述步骤查询OCSP服务器IP地址。
MOZILLA_PKIX_ERROR_REQUIRED_TLS_FEATURE_MISSING” 搞得我特别懵逼,我用谷歌、QQ、Edge等浏览器都没出现这样的问题,后来了解了一下才知道火狐要求OCSP 装订(但我有几个网站也没开启OCSP过,一样可以用火狐,咱也不知道也不敢问) 在Nginx配置文件加上 #开 启OCSP ssl_stapling on; ssl_stapling_verify on;
在线证书状态协议(OCSP,Online Certificate Status Protocol)是维护服务器和其它网络资源安全性的两种普遍模式之一。 简介 在线证书状态协议(OCSP)克服了证书注销列表(CRL)的主要缺陷:必须经常在客户端下载以确保列表的更新。当用户试图访问一个服务器时,在线证书状态协议发送一个对于证书状态信息的请求。 其实就是可以加速网站访问,尤其对于OCSP服务器遭受DNS污染(尤指之前Let's Encrypt证书服务器被污染),或者OCSP服务器在境外的网站。 在服务器中启用OCSP装订 为了节省您查找的麻烦,以下各节包含有关如何在您的计算机中启用OCSP装订的说明 。 Nginx 在您的计算机中启用OCSP装订 Nginx的 服务器,请在服务器的配置文件中添加以下文本。
摘要: 正确地配置OCSP stapling, 可以提高HTTPS性能。 什么是OCSP stapling? OCSP存在隐私和性能问题。 为了解决OCSP存在的2个问题,就有了OCSP stapling。由网站服务器去进行OCSP查询,缓存查询结果,然后在与浏览器进行TLS连接时返回给浏览器,这样浏览器就不需要再去查询了。 对www.fundebug.com进行检查,会发现OCSP stapling是开启的: 对kiwenlau.com进行检查,会发现OCSP stapling是关闭的: 配置OCSP stapling 在查询 resolver属性用于指定DNS服务器地址, OCSP查询地址ocsp.int-x3.letsencrypt.org需要解析为IP地址。
在线证书状态协议(OCSP)克服了证书注销列表(CRL)的主要缺陷:必须经常在客户端下载以确保列表的更新。当用户试图访问一个服务器时,在线证书状态协议发送一个对于证书状态信息的请求。 服务器回复一个“有效”、“过期”或“未知”的响应。协议规定了服务器和客户端应用程序的通讯语法。在线证书状态协议给了用户的到期的证书一个宽限期,这样他们就可以在更新以前的一段时间内继续访问服务器。 ocsp比crl方式更加高效,但ocsp也存在一些问题,实时查询证书会给客户端带来一定性能影响,另一方面需要访问ca提供的第三方中心话验证服务器,如果这个第三方验证服务出现问题,或被攻击,将会导致ocsp 服务器在TLS握手时发送事先缓存的OCSP响应,用户只需验证该响应的有效性而不用再向数字证书认证机构(CA)发送请求。 说白了,服务器代替客户端去进行OCSP查询,缓存查询结果,然后在与客户端进行TLS连接时返回给客户端。
目前 “Oneinstack”、“LNMP 一键包” 默认的 OpenSSL 版本都不是最新版,修复此漏洞需要重新编译。
腾讯云所有Windows未下线镜像对应的IIS版本都支持OCSP(系统≥server2008或≥Vista) 双击导入这个注册表项即可开启OCSP 这是我在https://freessl.cn/ 申请的免费证书 ,怀疑是OCSP服务器在海外,中国大陆访问海外,丢包率较高,所以时通时不通 openssl s_client -connect test.sanqinyinshi.cn:443 -servername -c 100 > ping.info 20%的丢包率,国外的,可以理解 OCSP服务器被限制访问或OCSP服务器访问慢,会导致https访问慢。 由于大多数全球权威CA的OCSP站点都设在国外,当网络环境较差、出现网络故障以及遇到特殊时期网络封锁,客户端无法连接到OCSP站点,或者OCSP站点无法返回证书状态内容,导致HTTPS请求可能还没到多次握手阶段 综上,开启OCSP要谨慎。 另外,有个在线检测OCSP的工具挺方便的:https://crt.sh/ 输入域名点查询,然后点ID进去能看到一个check按钮,变成Good说明开启OCSP了
由于国内 VPS 服务器访问 OCSP 服务器可能会被污染而导致失败,所以添加resolver来解决此问题. :443 -servername www.yourdomain.com -status -tlsextdebug < /dev/null 2>&1 | grep -i "OCSP response" # 将命令中 www.yourdomain.com 改为你的域名 未生效结果 OCSP response: no response sent [avatar] 成功生效结果 OCSP response: OCSP Response Data: OCSP Response Status: successful (0x0) Response Type : Basic OCSP Response [avatar] 配置完成后首次检查可能会显示未生效,因为 Nginx 收到首次请求会发起异步 OCSP 请求,尝试多执行几次来查询即可.
正文 一、弊端 此方式实现了OCSP查询在服务器端进行,避免了浏览器去进行OCSP验证从而影响访问速度; 但是OCSP响应的缓存并不是预加载的,而是异步加载的; 在Nginx启动后,只有当有客户端访问的时候 指令直接读取本地响应信息,这样就不会去实时查询证书的OCSP服务器,在进行SSL握手的时候直接将本地的响应信息进行下发,极大的加快了访问速度。 开始优化 1.更改服务器DNS解析服务器 由于Let's Encrypt证书DNS解析被污染,在服务器上也是无法直接访问Let's Encrypt的OCSP验证域名的,解决访问有两个 一:我们更改服务器的 DNS解析服务器为8.8.8.8等国外公共服务器 二:直接修改本地Hosts,指定OCSP域名ocsp.int-x3.letsencrypt.org的IP地址 这里我选择第二种,直接修改本地Hosts文件 如果要获取指定证书文件的OCSP响应,则需要自己手动修改对应的证书目录和OCSP服务器地址等。 3.运行脚本 //添加可执行权限 chmod +x getOCSP.sh //运行脚本 .
什么是ocsp装订它允许Web服务器查询OCSP响应器(即监听OCSP请求的证书颁发机构服务器),并将响应结果缓存起来。 它不是对每个证书验证请求都向CA的服务器发出请求,而是允许Web服务器直接定期查询OCSP响应器并缓存响应。 如何在您的服务器上启用OCSP Stapling现在大多数现代浏览器都支持OCSP Stapling。 OCSP Stapling如果您想要再次确认服务器上是否启用了OCSP Stapling ,您可以访问SSL Labs。 在协议详情部分,您将看到OCSP Stapling字段,这将指示您的服务器上是否启用了OCSP Stapling。或者,您可以使用命令行来检查OCSP Stapling是否启用。
OCSP请求: OCSPRequest ::= SEQUENCE { tbsRequest TBSRequest, --待签名请求 issuerKeyHash OCTET STRING, -- 证书颁发者公钥的Hash serialNumber CertificateSerialNumber } --证书序列号OCSP 响应: OCSPResponse ::= SEQUENCE { responseStatus OCSPResponseStatus, --OCSP响应状态 responseBytes
2、OCSP OCSP 是一个在线证书查询接口,它建立一个可实时响应的机制,让浏览器可以实时查询每一张证书的有效性,解决了 CRL 的实时性问题,但是 OCSP 也引入了一个性能问题,某些客户端会在 SSL (OCSP 地址也在证书的详细信息中) OCSP Stapling 就是为了解决 OCSP 性能问题而生的,其原理是:在 SSL 握手时,服务器去证书 CA 查询 OCSP 接口,并将 OCSP 查询结果通过 另外服务器有更好的网络,能更快地获取到 OCSP 结果,同时也可以将结果缓存起来,极大的提高了性能、效率和用户体验。 ocsp的原理,如下按照ocsp验证的逻辑进行逐步确认。 " -header "host" "ocsp.int-x3.letsencrypt.org" 从响应结果看,连接超时,OCSP服务器无法正常响应。
设置完成后,可以解决 Let's Encrypt OCSP 验证地址 http://ocsp.int-x3.letsencrypt.org 被 GFW 屏蔽造成的网站卡顿问题。
简介 OCSP在线证书状态协议是为了替换CRL而提出来的。对于现代web服务器来说一般都是支持OCSP的,OCSP也是现代web服务器的标配。 但是OCSP stapling却不是所有的web服务器都支持。但是现实工作中我们可能需要知道具体某个网站对OCSP的支持程度。 接下来我们会详细讲解从获取服务器的证书到验证服务器是否支持OCSP stapling的一整套流程。 获取服务器的证书 要校验服务器是否支持OSCP,我们首先需要获取到这个服务器的证书,可以用openssl提供的 openssl s_client -connect来完成这个工作。 发送OCSP请求 有了OCSP responder的地址,我们就可以进行OCSP验证,在这个命令中我们需要用到服务器的证书和intermediate证书。
13.png Nginx OCSP stapling 由网站服务器去进行OCSP查询,缓存查询结果,然后在与浏览器进行TLS连接时返回给浏览器,这样浏览器就不需要再去查询了。 stapling 开启OCSP装订需要在网站的nginx配置文件中添加如下配置: # 开启 OCSP Stapling,开启后服务器在TLS握手时发送事先缓存的OCSP响应,用户只需验证该响应的有效性而不用再向数字证书认证机构 (CA)发送请求 ssl_stapling on; # 启用或禁用服务器对OCSP响应的验证 ssl_stapling_verify on; # 证书的签发机构的ca证书,我的Let's Encrypt ffis.me/ca.cer ssl_trusted_certificate /usr/local/nginx/conf/ssl/ffis.me_ca.cer; # 添加resolver解析OSCP响应服务器的主机名 resolver 8.8.8.8 8.8.4.4 223.5.5.5 valid=60s; # 网络超时时间 resolver_timeout 2s; 添加后,重启nginx服务器,再次使用命令验证,OCSP
Status Protocol – OCSP的描述中,浏览器从在线OCSP服务器(也称为OCSP Response Server)请求证书的撤销状态,OCSP Server予以响应。 而且,OCSP的验证有网络IO,花费了很长的时间,严重影响了浏览器访问服务器的用户体验。 第二个缺点:在浏览器发送服务器HTTPS证书序号到CA OCSP Server时,也将暴露了用户的隐私,将用户访问的网址透漏给了CA OCSP Server。 OCSP Stapling OCSP Stapling的方案是解决了CRL、OCSP的缺点,将通过OCSP Server获取证书吊销状况的过程交给Web 服务器来做,Web 服务器不光可以直接查询OCSP 信息,规避网络访问限制、OCSP服务器离用户的物理距离较远等问题,还可以将查询响应缓存起来,给其他浏览器使用。
说白了就是查询你的SSL证书是不是被提供商吊销了,正常访问一个网站时,浏览器要先去使用OCSP协议去查询你的证书是否有效,如果有效才进行接下来的操作; 可全球这么多网站,都去验证的话OCSP服务器也扛不住 ,那直接给服务器换DNS服务器不就行了,OCSP验证放在网站服务器上并且缓存在本地,客户端直接查询服务器缓存的结果,也不用去等,多好 这时候就需要Nginx的OCSP装订功能了 由网站服务器去进行OCSP 使用myssl验证,也提示OCSP已装订 Firefox、IE、Safari浏览器的访问也正常了 再次使用Charles进行抓包,发现浏览器会跳过OCSP验证 此方式实现了OCSP查询在服务器端进行 1.更改服务器DNS解析服务器 由于Let's Encrypt证书DNS解析被污染,在服务器上也是无法直接访问Let's Encrypt的OCSP验证域名的,解决访问有两个 一:我们更改服务器的DNS解析服务器为 如果要获取指定证书文件的OCSP响应,则需要自己手动修改对应的证书目录和OCSP服务器地址等。 3.运行脚本 chmod +x getOCSP.sh.
3 根因 基于以上测试结果,中国大陆使用HTTPS协议访问业务出现慢的情况,因CA OCSP Server IP地址被限制,客户端长时间等待服务器端的响应导致。 服务器(也称为OCSP Response Server)请求证书的撤销状态,OCSP Server予以响应。 2 在浏览器发送服务器HTTPS证书序号到OCSP Server时使用HTTP协议,将暴露用户的隐私,存在一定的安全性。 HTTPS服务器访问的先决条件都取决于OCSP Server,这将是一个致命的单点故障,对于具有资深架构设计经验的你来说,你会这么选择吗? ,服务器在TLS握手时发送事先缓存的OCSP响应,用户只要验证该响应的时效性而不用再向数字证书认证机构(CA)发送请求,可以加快握手速度。
于是从A的公钥中提取出serial number,并将其封装到一个’OCSP request’中发给CA服务器。 CA服务器中的OCSP responder读取到了’OCSP request’请求,并从中提取出A的公钥的serial number。 OCSP responder从CA服务器的数据库中查询这个serial number是否在这个数据库被撤销的列表中。 B通过使用CA服务器的公钥验证OCSP response的有效性,从而确认A的公钥仍然有效 。 最后B使用A的公钥和A进行通讯。 那么什么是OCSP stapling呢? OCSP stapling是直接将OCSP证书放到客户端要访问的web服务器上,因为OCSP证书是添加了时间戳和数字签名的,所以可以保证其正确性。
1.在/etc/hosts添加 23.32.3.72 ocsp.int-x3.letsencrypt.org 2.在ngxin的站点配置文件server块里添加如下代码: # ssl_stapling 测试是否成功 openssl s_client -connect jiangruyi.com:443 -status -tlsextdebug < /dev/null 2>&1 | grep -i "OCSP response" 如果命令执行后返回OCSP Response Status: successful (0x0)表示成功,返回OCSP response: no response sent表示失败。