OCSP 和 OCSP Stapling
在线证书状态协议(Online Certificate Status Protocol),简称 OCSP
,是一个用于获取 X.509
数字证书撤销状态的网际协议,在 RFC6960
中定义。
OCSP 用于检验证书合法性,查询服务一般由证书所属 CA 提供。OCSP 查询的本质,是一次完整的 HTTP 请求加响应的过程,这中间涵括的 DNS 查询、建立 TCP 连接、Web 端工作等步骤,都将耗费更多时间,使得建立 TLS 花费更多时长。
后来,OCSP Stapling
出现了,将原本需要客户端实时发起的 OCSP
请求转嫁给服务端。
Web 服务端将主动获取 OCSP 查询结果,并随证书一起发送给客户端,以此让客户端跳过自己去寻求验证的过程,提高 TLS 握手效率。 可以提高HTTPS性能。
在线校验
此方式需要支持服务器能够主动访问证书校验服务器才能生效,并且在每次重启nginx的时候会主动请求一次,如果网络不通会导致nginx启动缓慢。
注: 若 ssl_certificate
指令指定了完整的证书链
,则 ssl_trusted_certificate
可省略。
server {
listen 443 ssl;
server_name xx.xx.com;
index index.html index.htm index.jsp;
#证书的.cer文件路径
ssl_certificate server.pem;
#证书的.key文件
ssl_certificate_key server-key.pem;
# 开启 OCSP Stapling 客户端访问时 NginX 将去指定的证书中查找 OCSP 服务的地址,获得响应内容后通过证书链下发给客户端。
ssl_stapling on;
# 启用OCSP响应验证,OCSP信息响应适用的证书
ssl_stapling_verify on;
#若 ssl_certificate 指令指定了完整的证书链,则ssl_trusted_certificate 可省略。
ssl_trusted_certificate /path/to/xxx.pem;
#添加resolver解析OSCP响应服务器的主机名,valid表示缓存。
resolver 8.8.8.8 8.8.4.4 216.146.35.35 216.146.36.36 valid=60s;
# resolver_timeout表示网络超时时间
resolver_timeout 2s;
......
人工更新
为了缓存的更新时间更可加控,你也可以人工负责更新文件内容。利用 NginX 的 ssl_stapling_file 指令直接将 OCSP 响应存成文件,NginX 从文件获取OCSP响应而无需从服务商拉取,将其随证书下发而不实时查询。
server {
listen 443 ssl;
server_name xx.xx.com;
index index.html index.htm index.jsp;
ssl_certificate server.pem;#证书的.cer文件路径
ssl_certificate_key server-key.pem;#证书的.key文件
# 开启 OCSP Stapling 客户端访问时 NginX 将去指定的证书中查找 OCSP 服务的地址,获得响应内容后通过证书链下发给客户端。
ssl_stapling on;
ssl_stapling_file /xxx/xxx/stapling_file.ocsp;
# 启用OCSP响应验证,OCSP信息响应适用的证书
ssl_stapling_verify on;
#若 ssl_certificate 指令指定了完整的证书链,则 ssl_trusted_certificate 可省略。
ssl_trusted_certificate /path/to/xxx.pem;
检测OCSP stapling
https://www.ssllabs.com/ssltest
SSL Labs能够对开启HTTPS的网站的SSL配置进行全面分析,可以检测OCSP stapling的状态。
SSL Labs 检测的结果,在近期内有缓存。检测页面结果顶部有如下字样:
Assessed on: Mon, 31 Aug 2020 10:28:36 UTC |Hide|Clear cache
如果更新了SSL配置,要重新检测,记得先点击 Clear cache
清除缓存。
或 百度 SSL状态检测
可用国内一些常用网站检测,如: http://stool.chinaz.com/https
Nginx之OCSP stapling配置 https://www.jianshu.com/p/540124f370e0?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
Nginx之OCSP stapling配置 https://blog.csdn.net/fundebug/article/details/79671891