什么是OCSP Stapling
OCSP的全称是Online Certificate Status Protocol,在线证书状态协议。它是一个用于检查证书状态的协议,客户端使用此协议来检查证书是否被撤销。而OCSP Stapling,是指服务端主动获取 OCSP 查询结果并随着握手协商时一起发送给客户端,从而让客户端免去自己验证的过程,提高 TLS 握手效率。
Web容器版本支持
Nginx version 1.3.7以上支持
Apache Server 2.3.3+ 以上支持
自动OCSP Stapling
server {
listen 443 ssl;
server_name www.xxx.cn;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s; #设置OCSP请求的DNS服务器地址
resolver_timeout 5s;
ssl_trusted_certificate ca.pem; #ca.pem为证书的中级CA证书
}
配置修改完成后,需要重启nginx服务规则才会生效。
手动开启OCSP Stapling
1,获取证书的OCSP地址
命令:openssl x509 -in server.pem -noout -ocsp_uri *server.pem为服务器证书公钥文件。
手动:双击打开.cer格式服务器证书-详细信息-颁发机构信息访问/授权信息访问-联机证书状态协议中的http链接地址:http://ocsp2.globalsign.com/gsorganizationvalsha2g2
2,制作stapling.ocsp文件
openssl ocsp -CAfile root.pem -issuer ca.pem -cert server.pem -url http://ocsp2.globalsign.com/gsorganizationvalsha2g2 -text -respout ./stapling.ocsp -header "HOST" "ocsp2.globalsign.com"
其中root.pem为中级CA证书和顶级根证书,ca.pem为中级CA证书,server.pem为服务器证书。
注:stapling.ocsp具备生命周期,需每次在update到期之前更新,建议可以编辑自动化任务脚本进行更新。
3、在Nginx.conf添加如下内容到https站点配置中
server {
listen 443 ssl;
server_name www.xxxx.cn;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
ssl_stapling_file /etc/nginx/cert/stapling.ocsp;
ssl_trusted_certificate ca.pem;
}
4、验证OCSP Stapling 状态
openssl s_client -connect youdomino.com:443 -tlsextdebug –status
已开启
`OCSP response:
OCSP Response Data:
OCSP Response Status: successful (0x0) Response Type: Basic OCSP Response
……`
未开启
OCSP response: no response sent