OCSP Stapling 如何在服务器 Apache 或 Nginx 中开启

现在做网站你要是域名前没有个小绿锁都不好意思和别人打招呼了,什么是小绿锁?简单说就是 HTTPS。尽管相对于 HTTP ,HTTPS 在安全性上已经有了质的飞跃,但打开连接速度相对较慢仍然是限制 HTTPS 普及的重要原因之一。

而本文所要介绍的 OCSP Stapling 就是很大程度上解决网站设置 HTTPS 后访问速度变慢的问题的。

服务器开启OCSP Stapling

什么是 OCSP Stapling

OCSP (Online Certificate Status Protocol) 也就是 TLS证书状态查询扩展,通常由 CA 提供,用于在线实时验证证书是否合法有效,这样客户端就可以根据证书中的 OCSP 信息,发送查询请求到 CA 的验证地址,来检查此证书是否有效。

然而这些默认查询 OCSP 的客户端在获得查询结果的响应前势必会一直阻塞后续的事件,在网络情况堪忧的情况下(尤其是内陆地区)会造成较长时间的页面空白,造成客户体验相当糟糕。

OCSP Stapling 一般翻译为 OCSP装订 就是将查询 OCSP 接口的工作交给服务器来做,服务器除了可以直接查询 OCSP 信息,还可以仅进行少数次查询并将响应缓存起来。当有客户端向服务器发起 TLS 握手请求时,服务器将证书的 OCSP 信息随证书链一同发送给客户端,从而避免了客户端验证会产生的阻塞问题。由于 OCSP 响应是无法伪造的,因此这一过程也不会产生额外的安全问题。

所以在服务器上部署 OCSP装订,能大大缓解链接数与高并发量,省去多次握手操作,使网站访问速度更快。

在 Apache 中配置开启 OCSP Stapling 的方法

  1. 修改配置(必须)

打开 Apache2.x/conf/extra/ 目录下的 httpd-ssl.conf 文件,修改配置文件:

去掉以下语句前面的注释符

  1. SSLUseStapling On #开启ocsp
  2. SSLStaplingCache "shmcb:/usr/local/apache24//logs/ssl_stapling(32768)" #缓存位置
  1. 优化参数(可选)

去掉以下语句前面的注释符

  1. SSLStaplingStandardCacheTimeout 3600 #ocsp装订正常缓存超时3600秒
  2. SSLStaplingErrorCacheTimeout 600 #ocsp装订错误缓存超时600秒

配置完成,保存退出。重启Apache,就成功启用了 Apache 的 OCSP Stapling。

在 Nginx 上启用 OCSP Stapling 的方法

Nginx 启用 OCSP Stapling 前提也是要先部署 SSL证书,并可以正常访问。然后配置参考如下:

  1. server {
  2. listen 443;
  3. server_name www.domainame.com; #证书绑定的网站域名
  4. ssl on;
  5. ssl_certificate conf/www.domainame.com_chain.crt; #证书公钥
  6. ssl_certificate_key conf/www.domainame.com.key; #证书私钥
  7. ssl_stapling on; #开启stapling
  8. ssl_stapling_verify on; #开启stapling验证
  9. ssl_trusted_certificate conf/hecheng.crt; #指定验证的证书
  10. ssl_session_timeout 5m;
  11. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!3DES:!aNULL:!MD5:!ADH:!RC4;
  12. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  13. ssl_prefer_server_ciphers on;
  14. location / {
  15. root html; #站点目录
  16. index index.html index.htm;
  17. }
  18. }

配置完成,保存退出。重启nginx,就成功启用了 Nginx 的 OCSP Stapling。

OCSP Stapling

测试 OCSP Stapling 是否开启成功

方法1:测试命令如下:

  1. openssl s_client -connect www.domainame.com:443 -servername www.domainame.com -status -tlsextdebug < /dev/null 2>&1 | grep -i "OCSP response"

若站点返回 OCSP response: no response sent,代表开启失败。

若站点已成功启用 OCSP Stapling,会返回提示中有:successful

方法2:或者使用命令:

  1. echo QUIT | openssl s_client -connect www.domainame.com:443 -status 2> /dev/null | grep -A 17 'OCSP response:'

执行后,若没有返回信息,则开启失败。

若站点已成功启用 OCSP Stapling,会返回提示中有:successful

方法3:利用第三方网站的域名检测

检测地址:https://www.ssllabs.com/ssltest/

输入域名,点击 submit 进行检测。

测试完成,若结果中 ocsp stapling 这项是 yes,代表你站点的 ocsp stapling 已成功开启。

最后,现在很多快速建站的朋友都是用的宝塔面板来管理服务器的,那么在宝塔面板中如何开启 ocsp stapling 呢,你可以查看:在宝塔面板 Apache中开启 OCSP Stapling 提高 HTTPS 访问速度

 

转载请注明链接地址:荐爱小站 » OCSP Stapling 如何在服务器 Apache 或 Nginx 中开启

赞 (1) 赏 !

觉得文章有用就打赏一下吧,赠人玫瑰手有余香!

支付宝扫一扫打赏

微信扫一扫打赏