使用 OpenSSL 命令行直接提取服务器返回的证书链并校验签名路径,是最权威的本地诊断方式。例如执行:openssl s_client -connect example.com:443 -servername example.com -showcerts,应返回完整的 PEM 格式证书链(含叶证书、中间证书),且末尾无“Verify return code: 0 (ok)”以外的错误码。若返回 code 21(unable to verify the first certificate)或 20(unable to get local issuer certificate),即表明中间证书缺失或根证书未被信任库识别。
SSL 证书安装有效性取决于终端信任锚是否能通过证书链回溯至已预置的根证书。
| 维度 | 参考标准 | 工程师建议 |
|---|---|---|
| 证书链完整性 | CA/B Forum BR §7.1.2:必须发送完整链(不含根证书) | 用 openssl s_client -showcerts 检查输出中是否包含全部中间证书;Nginx 需在 ssl_certificate 文件中拼接叶证书 + 中间证书(顺序不可颠倒) |
| 域名覆盖范围 | RFC 6125 §6.4.1:Subject Alternative Name 必须精确匹配请求 Host | 检查 SAN 字段是否包含当前访问域名(含 www 变体);多域名SSL证书需确认所有目标域名均已列入 SAN |
| 私钥一致性 | PKIX RFC 5280 §4.1.1.2:公钥必须与私钥数学匹配 | 运行 openssl x509 -noout -modulus -in cert.pem | openssl md5 与 openssl rsa -noout -modulus -in key.pem | openssl md5 对比哈希值 |
| OCSP Stapling 状态 | BR §7.1.2.2e:推荐启用以提升吊销检查性能 | Nginx 启用 ssl_stapling on 并配置 ssl_trusted_certificate;用 openssl s_client -status 查看响应中是否含 OCSP Response |
Q:使用通配符证书时,*.example.com 能否覆盖 example.com?
A:不能。根据 BR §7.1.4.2.1,通配符仅匹配单标签子域(如 a.example.com、b.example.com),不匹配裸域。需在 SAN 中显式添加 example.com。
Q:DV SSL证书和OV SSL证书在安装验证流程上有区别吗?
A:无区别。验证焦点始终是证书链、密钥匹配、域名覆盖与协议配置,与证书验证等级(DV/OV/EV)无关。验证逻辑统一适用 DV SSL证书 与 OV SSL证书。
加密您的网站,赢得客户信任!