首页 > 工具箱 > 证书私钥配对

证书与私钥配对校验

nginx 报 key values mismatch、Apache 报 certificate and private key do not match,都是证书和私钥对不上。原理很简单:私钥能推出公钥,证书和 CSR 里也都带着公钥,三者的公钥指纹一致就是同一把钥匙。粘两份或三份进来即可,私钥全程只在你的浏览器里解析,不会发到服务器。

对不上时怎么查

最常见:拿错了文件
同一个域名前后申请过几次,每次的私钥都不一样。按修改时间找到与证书同一批生成的那个 .key,别凭文件名猜。
次常见:只换了证书没换私钥
续期时如果重新生成了 CSR,私钥也是新的,两个都要换。用同一份 CSR 续签才能沿用旧私钥。
文件被编辑器改坏
PEM 对换行敏感,用 Windows 记事本粘贴、或者被转成 CRLF、丢了结尾换行,都可能解析失败。建议用 cat 直接看,或走 证书格式转换 重新规范化一遍。
私钥带密码
看到 ENCRYPTED PRIVATE KEYProc-Type: 4,ENCRYPTED 就是加密私钥,本工具读不了,先解密:openssl pkcs8 -in key.pem -out plain.pem
命令行等价做法
三条命令输出一样就是配对的:
openssl x509 -in cert.pem -noout -pubkey | openssl sha256
openssl pkey -in key.pem -pubout | openssl sha256
openssl req -in req.csr -noout -pubkey | openssl sha256