Nginx装订OCSP

1、OCSP装订解决了在线证书协议中的大多数问题。当用户试图访问一个服务器时,在线证书状态协议发送一个对于证书状态信息的请求。服务器回复一个“有效”、“过期”或“未知”的响应。

2、由于OCSP响应包含的信息少于典型的证书吊销列表,因此减轻了网络和客户端资源的负担,提高响应速度缩短时间;

3、OCSP中,服务器在验证特定的证书时,由于请求不强制加密,同时会导致一些隐私问题。

下面是Nginx配置OCSP的例子,并可以通过配置linux 的定时任务实现OCSP验证文件的自动更新。

一、Nginx配置OCSP

 

添加下面代码到nginx.conf配置文件的server下面

ssl_stapling on;
ssl_stapling_verify on;
ssl_early_data off;
resolver 101.226.4.6 223.5.5.5  valid=300s;
resolver_timeout 10s;
ssl_stapling_file /etc/nginx/ocsp_sta.oscp;                      ###ocsp_sta.oscp为域名证书的ocsp验证文件
ssl_trusted_certificate /etc/nginx/SectigoRSADVBundle.pem;       ###为域名证书的中间证书文件

###
#####Sectigo域名证书的中间证书文件下载地址为:https://sectigo.com/knowledge-base/detail/Sectigo-Intermediate-Certificates/kA01N000000rfBO
###

比如

server {
server_name domain;            ####域名

root /var/www;
index index.html index.htm index.php;

access_log /var/log/nginx/access.log;

ssl_stapling on;
ssl_stapling_verify on;
ssl_early_data off;
resolver 101.226.4.6 223.5.5.5 valid=300s;
resolver_timeout 10s;
ssl_stapling_file /etc/nginx/ocsp_sta.oscp;                           ###ocsp_sta.oscp为域名证书的ocsp验证文件
ssl_trusted_certificate /etc/nginx/SectigoRSADVBundle.pem;            ###为域名证书的中间证书文件

二、OCSP验证文件自动更新脚本

由于OCSP验证文件只有一个星期的有效时间,所以我们需要配置自动更新此文件的脚本。
nano /etc/nginx/ocsp.sh
sudo chmod 777 /etc/nginx/ocsp.sh

#!/bin/sh:
sudo rm -rf /etc/nginx/ocsp_sta.oscp
openssl ocsp -no_nonce -issuer /etc/nginx/SectigoRSADVBundle.pem -cert /etc/nginx/域名证书(crt格式) -respout /etc/nginx/ocsp_sta.oscp -url http://ocsp.sectigo.com

systemctl restart nginx
exit

配置好自动更新脚本后可以手动执行
bash /etc/nginx/ocsp.sh
systemctl daemon-reload
systemctl restart nginx

三、设置定时任务

 
执行 crontab -e
最后一行输入下面的代码
 0 6 */4 * * bash /etc/nginx/ocsp.sh
保存,退出即可。
使定时任务生效执行
/etc/init.d/cron restart

四、OCSP验证检测

浏览器访问https://certificatetools.com/ocsp-checker,输入检测的域名然后点击“Validate”,即可
如果正常你将会看到
Cert Status good
OCSP Response Status successful (0x0)

上一篇
下一篇