什么是ocsp装订
它允许Web服务器查询OCSP 响应器(即监听OCSP请求的证书颁发机构服务器),并将响应结果缓存起来。这样, Web服务器就可以检查其证书的有效性,并 且客户端就无需再联系证书颁发机构了。
原始的在线证书状态协议存在的问题 :
原始的在线证书状态协议( OCSP )在效率上存在一些问题,因为它要求证书颁发机构( CA )对每个请求证书信息的客户端提供 响应。这意味着,当一个证书被发放给一个流量大的网站时,会有大量的请求发送到CA的服务器,询问证书的有效性数据。
这种做法并不理想,因为它增加了用户的安全风险,因为信息必须通过第三方传递,同时也减慢了加载时间。
例如,如果用户决定访问https://www.zyyx.cn ,由于该网站是SSL加密的,必须检查证书的有效性。然后浏览器会查询证书 的供应商(例如Digicert、GoDaddy等),以确定证书是否仍然有效。用户必须向证书供应商提供它请求的URL ,然后允许第三方 看到谁在什么时间浏览了哪个网站。
此外,如果浏览器无法联系CA获取OCSP响应,那么用户将被带到一个警告屏幕,他们被迫要么点击继续连接,要么终止。这可 能导致错误警告信息的出现,从而可能吓跑那些认为自己信息可能不安全的用户。
OCSP Stapling是如何工作的
OCSP Stapling是一种更有效的处理证书信息验证的方法。
它不是对每个证书验证请求都向CA的服务器发出请求,而是允许Web服务器直接定期查询OCSP响应器并缓存响应。
当用户尝试访问网站时,经过数字时间戳的响应随后会通过证书状态请求扩展响应与TLS/SSL握手"装订"在一起。根据OCSP响 应,浏览器要么显示网页,要么显示证书无效的错误消息。
这对性能和安全性都是有益的。用户不再需要单独联系CA服务器以接收证书是否有效的响应。这意味着资源负担现在又回到了证 书供应商身上,浏览器也不再需要向第三方披露用户浏览习惯的信息。
在您的服务器上启用OCSP Stapling
现在大多数现代浏览器都支持OCSP Stapling。要详细了解如何在您的Apache或Nginx服务器上启用OCSP Stapling ,请按照以下 说明操作:
Nginx
server {
listen 443 ssl;
ssl_protocols TLSv1 TLSv1 .1 TLSv1 .2;
ssl_certificate /etc/ssl/bundle .crt;
ssl_certificate_key /etc/ssl/your_domain_name .key;
ssl_stapling on;
ssl_stapling_verify on;
}
Apache
SSLStaplingCache shmcb :/tmp/stapling_cache(128000) <VirtualHost *:443>
SSLEngine on
SSLProtocol all -SSLv3 -SSLv2
SSLCertificateFile /path/to/your_domain_name .crt
SSLCertificateKeyFile /path/to/your_private .key
SSLCertificateChainFile /path/to/DigiCertCA .crt
SSLUseStapling on
</VirtualHost>
如何验证服务器上是否启用了OCSP Stapling
如果您想要再次确认服务器上是否启用了OCSP Stapling ,您可以访问SSL Labs。这个网站允许您输入想要检查的网站URL ,然后 它将为您提供一份详细的报告,包括证书详情、协议详情等。在协议详情部分,您将看到OCSP Stapling字段,这将指示您的服务 器上是否启用了OCSP Stapling。
或者,您可以使用以下命令来检查OCSP Stapling是否启用:
总结
OCSP Stapling有助于保护用户信息的安全,同时还能够减少页面加载时间。通过允许浏览器从服务器而不是每次请求都回到CA 的服务器检索SSL证书信息,它可以实现这两个结果。同时减少页面加载时间和提高用户安全性是非常不常见的,但是启用OCSP Stapling使这变得可以轻松实现。