浏览器
MOZILLA_PKIX_ERROR_REQUIRED_TLS_FEATURE_MISSING:缺 OCSP 装订
MOZILLA_PKIX_ERROR_REQUIRED_TLS_FEATURE_MISSINGMOZILLA_PKIX_ERROR_REQUIRED_TLS_FEATURE_MISSING 的意思是:证书承诺“每次连接都会附上最新的 OCSP 响应”,这次连接却没有。 这个承诺叫 OCSP Must-Staple。Firefox 会要求服务器兑现承诺,做不到就拒绝连接;其他浏览器会忽略这个标记。
先判断是网站的问题还是你电脑的问题
是网站的问题。用 SSL 检测 确认,它会显示证书是否带 Must-Staple、服务器是否装订了 OCSP 响应:
curl ssl.sh/example.com
访客修不了。刷新几次也许能打开(服务器已经取到响应),这本身就说明服务器在“按需装订”。
原因
这些原因的结果相同:服务器没把 OCSP 响应装订进 TLS 握手。
1. 没开启装订
申请证书时加了 Must-Staple(比如 certbot --must-staple),Web 服务器却没开 ssl_stapling。看看服务器发了什么:
openssl s_client -connect example.com:443 -servername example.com -status </dev/null 2>/dev/null \
| grep -A3 "OCSP response"
显示 OCSP response: no response sent 就是这个问题。
2. Nginx 重启后按需获取
Nginx 是用到时才去取 OCSP 响应的,所以重启或重载之后的头几个连接没有装订。证书带 Must-Staple 时,这些访客在 Firefox 里就会失败。
3. 服务器连不上 OCSP 响应服务器
出站防火墙、没配 resolver、DNS 故障,都会让服务器取不到响应。国内服务器访问境外 CA 的 OCSP 地址时偶尔也会超时。Nginx 日志里对应的警告见 ssl_stapling ignored。
4. CA 已不再提供 OCSP
签发 CA 关闭了 OCSP 服务,装订就永远取不到。Let's Encrypt 在 2025 年停止接受 Must-Staple 申请并关闭了 OCSP,续期配置里还留着 Must-Staple 的,续期会失败或拿到无法使用的证书。
5. TLS 终止设备不支持装订
有些负载均衡和 CDN 不做装订,Must-Staple 证书不能用在这些地方。
在各浏览器/系统上的样子
只有 Firefox 会因为这个问题拒绝连接,Chrome、Edge 和 Safari 照常打开。
| 浏览器 | 显示内容 |
|---|---|
| Firefox | “建立安全连接失败”,代码 MOZILLA_PKIX_ERROR_REQUIRED_TLS_FEATURE_MISSING |
| Chrome / Edge / 360 / QQ 浏览器 | 正常打开(不执行 Must-Staple) |
| Safari | 正常打开 |
站长怎么修
推荐的修法是换一张不带 Must-Staple 的证书;坚持用 Must-Staple,就必须让每次握手都带上 OCSP 响应。
1. 推荐:换一张不带 Must-Staple 的证书。 certbot 从续期配置里去掉这个选项,再强制重新签发:
sudo sed -i '/must_staple/d' /etc/letsencrypt/renewal/example.com.conf
sudo certbot certonly --nginx -d example.com --force-renewal
sudo systemctl reload nginx
acme.sh 重新签发时不要加 --ocsp-must-staple。
2. 坚持用 Must-Staple 的话,开启装订,并保证服务器能取到响应:
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/nginx/ssl/example.com.chain.pem;
resolver 223.5.5.5 119.29.29.29 valid=300s;
每次重启后预热缓存(比如手动跑几次 openssl s_client -status),或者换用会预先获取响应的服务器软件。
3. 验证。 用 curl ssl.sh/example.com 和 Firefox 测试。
常见问题
为什么只有 Firefox 打不开?
主流浏览器里只有 Firefox 强制执行 Must-Staple,Chrome 和 Safari 会忽略这个扩展,所以同样的配置错误在它们那里看不出来。
怎么知道我的证书有没有 Must-Staple?
用 证书解析 查看,或者运行 openssl x509 -in cert.pem -noout -text,找一个列出 status_request 的 “TLS Feature” 扩展。
Must-Staple 还值得用吗?
对大多数网站来说不值得。它要求 CA 的 OCSP 服务稳定、你的服务器每次都装订成功。主要 CA 都在逐步放弃 OCSP,2026 年更常见的做法是缩短证书有效期,再配合浏览器端的吊销列表。
访客能做什么?
访客基本做不了什么,要由服务器端修复。刷新几次有时能打开,因为服务器已经拿到了响应。不要为了绕过它去关闭 OCSP 检查。
证书续期突然因为 Must-Staple 报错失败,为什么?
从 2025 年初开始,Let's Encrypt 会拒绝请求 Must-Staple 扩展的新订单,因为它不再运营 OCSP。certbot 或 acme.sh 的旧续期配置里如果还要求 Must-Staple,下一次续期就会失败。从 certbot 的续期配置文件里删掉 must_staple = True,或者去掉 acme.sh 命令里的 --ocsp-must-staple,再续期一次,最后用 curl ssl.sh/example.com 检查结果。宝塔面板等图形界面申请的证书一般不会带这个选项。