ssl_trusted_certificate仅用于Nginx自身验证:启用OCSP stapling校验时验证OCSP响应签名,或启用mTLS时验证客户端证书;它不发给浏览器,也不影响浏览器对服务端证书的信任判断。

直接用 ssl_trusted_certificate 无法“补全”服务端证书链,它不发给浏览器,也不影响客户端对您网站证书的信任判断。它的作用很明确:仅在启用 OCSP stapling 或双向 TLS(mTLS)时,供 Nginx 自身验证使用。
ssl_trusted_certificate 的真实用途
这个指令只在以下两种场景生效:
- 启用 OCSP stapling(
ssl_stapling on)且开启响应校验(ssl_stapling_verify on)时,Nginx 用它来验证从 OCSP 响应服务器拿到的签名是否可信——需要包含能签发该 OCSP 响应的中间证书(有时也含根证书),但不能含您的域名证书 - 启用客户端证书认证(
ssl_verify_client on)时,它用于验证访客提交的客户端证书是否由您信任的 CA 签发
配置前必须确认 OCSP stapling 已启用
如果没开 ssl_stapling,ssl_trusted_certificate 就完全不会被读取,配了也无效。正确启用需同时满足:
ssl_stapling on;ssl_stapling_verify on;-
resolver指向可用 DNS(如resolver 8.8.8.8 1.1.1.1 valid=300s;) -
ssl_trusted_certificate指向一个含 CA 中间证书(及可选根证书)的 PEM 文件,不含您自己的域名证书
如何准备 ssl_trusted_certificate 文件
该文件内容应严格为:
- CA 提供的中间证书(例如 Sectigo、DigiCert、Let’s Encrypt 的 R3/ISRG Root X1 等)
- 必要时追加对应的根证书(仅当 OCSP 响应由根 CA 直接签署时才需要)
- 绝对不要包含您的域名证书(xxx.crt)或私钥
- 多段证书之间用空行分隔,每段以
-----BEGIN CERTIFICATE-----开头,-----END CERTIFICATE-----结尾 - 推荐生成方式:
cat intermediate.crt root.crt > /etc/nginx/ssl/trusted-ca.pem
典型 Nginx 配置示例
以下是一个完整、安全的 OCSP stapling 配置片段(放在 server 块内):
ssl_certificate /etc/nginx/ssl/fullchain.pem; # 含域名证书 + 中间证书(不含根) ssl_certificate_key /etc/nginx/ssl/privkey.pem; ssl_trusted_certificate /etc/nginx/ssl/trusted-ca.pem; # 仅含中间+根(用于验证 OCSP 响应) ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 1.1.1.1 valid=300s; resolver_timeout 5s;
注意:ssl_certificate 和 ssl_trusted_certificate 是两个独立文件,路径不能混用,内容也不能互相覆盖。


















