postman报“error: unable to verify the first certificate”根本原因是apache未返回完整证书链;需将域名证书与中间证书合并为fullchain.pem并正确配置sslcertificatefile,确保tls握手时客户端能校验至可信根ca。
postman 调用 apache 托管的 https 接口报 “error: unable to verify the first certificate”,绝大多数情况不是 postman 有问题,而是 apache 返回的证书链不完整——手机端浏览器报“证书不受信任”和 postman 报这个错,根源高度一致:客户端无法从服务器拿到可验证到可信根的完整中间证书链。
Apache 必须返回完整证书链
Apache 默认只发送站点证书(your_domain.crt),但现代 TLS 验证要求客户端能顺着证书链一路向上校验到操作系统或客户端内置信任的根 CA。中间证书缺失时,Postman(基于 Node.js 的 TLS 实现)会直接终止握手。
- 打开终端,用 OpenSSL 模拟 Postman 握手:
openssl s_client -connect your-domain.com:443 -servername your-domain.com - 查看输出末尾的
Certificate chain部分:若只有 1 条(仅你自己的证书),说明链不完整 - 正确应显示 2 条以上:第 1 条是你域名证书,第 2 条是中间证书(如 Let’s Encrypt R3),第 3 条(根证书)通常不发
合并证书文件并正确配置 Apache
把域名证书和中间证书合并为单个 PEM 文件,顺序不能错:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 先粘贴你的
your_domain.crt(即站点证书)内容 - 换行后,紧接着粘贴中间证书(如
lets-encrypt-r3.pem)内容 - 根证书(如 ISRG Root X1)不要放入该文件
- 保存为
fullchain.pem,并在 Apache 配置中指定:SSLCertificateFile /path/to/fullchain.pem - 确保
SSLCertificateKeyFile指向对应的私钥,且SSLCertificateChainFile已移除(Apache 2.4.8+ 不再需要该指令)
验证是否生效
重启 Apache 后,立刻验证链是否完整:
- 访问 SSL Labs SSL Test,输入你的域名,重点看 “Certificate Chain” 是否显示 “OK” 和 “Chain issues: None”
- 在 Postman 中清除 DNS 缓存(Settings → Proxy → Clear DNS Cache),重发请求
- 仍失败?抓包确认服务器是否真返回了两条证书:用
openssl s_client -connect ... | openssl x509 -noout -text分别解析每条证书,确认第二条确实是中间 CA
其他关键检查点
即使链完整,以下配置错误也会导致 Postman 拒绝连接:
- 禁用已不安全的 TLS 协议:在 Apache 配置中加入
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1(只保留 TLSv1.2/TLSv1.3) - 避免使用弱加密套件:
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:...(推荐 Mozilla 现代配置) - 确认证书由公共可信 CA 签发(如 Let’s Encrypt、Sectigo、DigiCert),自签名或内网私有 CA 证书 Postman 默认不信任










