根本原因是Apache与Postman间TLS握手不匹配或证书信任链断裂;需确保Apache启用mod_ssl、监听443端口、配置正确TLS版本(至少TLSv1.2)、补全SAN证书链,并将根证书导入Postman CA设置。
postman 报 tls 相关错误(如 ssl certificate problem: self signed certificate、wrong_version_number、unable to verify the first certificate),根本原因不在 postman 本身,而在于它与 apache 服务端之间 tls 握手不匹配或证书信任链断裂。apache 的 tls 参数配置直接影响 postman 是否能完成握手——不是“能不能发请求”,而是“连握手第一步都失败”。解决关键不是关验证,而是让双方在协议版本、密钥交换、证书格式上对齐。
确认 Apache 启用了 mod_ssl 并监听 HTTPS 端口
Postman 连接 https:// 地址时,必须有实际的 HTTPS 服务响应。若 Apache 只监听 80 端口或未加载 SSL 模块,Postman 会直接报连接超时或 EPROTO 类底层错误。
- 运行
sudo a2enmod ssl确保模块启用 - 检查虚拟主机是否绑定到 443 端口:
<VirtualHost *:443>,且含SSLEngine on - 执行
sudo ss -tlnp | grep :443,确认 Apache 进程正在监听 443 - 若使用自签名证书,确保
SSLCertificateFile和SSLCertificateKeyFile路径正确、权限为644(证书)和600(私钥)
统一 TLS 协议版本,避免 WRONG_VERSION_NUMBER
Postman(基于 Chromium/Node.js)默认要求 TLS 1.2 或更高;若 Apache 强制只允许 TLS 1.0/1.1,或错误禁用了所有版本,就会触发 WRONG_VERSION_NUMBER 错误——这不是证书问题,是协议协商失败。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 在 Apache SSL 配置中明确启用兼容版本:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.2 +TLSv1.3 - 禁用过时协议可提升安全,但务必保留 TLSv1.2(Postman v10+ 最低要求)
- 重启 Apache:
sudo systemctl restart apache2 - 验证是否生效:用
openssl s_client -connect your-domain:443 -tls1_2测试能否成功握手
补全证书链并校验 Subject Alternative Name(SAN)
Postman 对证书比浏览器更严格:它不接受仅含 Common Name(CN)的旧式证书,且拒绝无 SAN 字段或 SAN 不匹配的证书——这直接导致 ERR_TLS_CERT_ALTNAME_INVALID 或域名验证失败。
- 生成自签名证书时,必须用 OpenSSL 配置文件或
-addext显式添加 SAN:openssl req -x509 -nodes -days 365 -newkey rsa:2048 \<br> -subj "/CN=localhost" \<br> -addext "subjectAltName = DNS:localhost,IP:127.0.0.1" \<br> -keyout /etc/ssl/private/apache-selfsigned.key \<br> -out /etc/ssl/certs/apache-selfsigned.crt
- 若用 IP 访问(如
https://192.168.1.100),SAN 中必须包含对应 IP;用域名访问则必须包含该域名 - Apache 配置中不要遗漏:
SSLCertificateChainFile(如有中间证书)
让 Postman 信任你的自签名或内网 CA 证书
即使 Apache 配置完全正确,Postman 默认仍不信任自签名证书或企业内网 CA。这不是 Bug,是设计使然——它不复用系统或浏览器证书库。
- 将你的根证书(
ca.crt或apache-selfsigned.crt)导出为 PEM 格式 - Postman 设置 → Settings → General → 找到 “CA Certificates” 区域 → 点击 “Add Certificate Authority” → 选择该 PEM 文件
- 重启 Postman(必须重启才生效)
- 验证:新建请求,发送 HTTPS 请求,状态码应为 200,无红色 SSL 错误提示

















