由于我不熟悉生成 key 和证书,所以当时我需要做一些测试。现在我觉得某一对可能混淆了。
我有一个 RSA 私钥文件:
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
并将证书签名请求文件发送给对方:
-----BEGIN CERTIFICATE REQUEST-----
...
-----END CERTIFICATE REQUEST-----
在尝试检查匹配时,根据在网络上找到的信息,可能值得注意的是以下内容:
openssl x509 -noout -modulus -in cert.csr | openssl md5
出现以下错误:
unable to load certificate
4980:error:0906D06C:PEM routines:PEM_read_bio:no start line:.\crypto\pem\pem_lib.c:650:Expecting: TRUSTED CERTIFICATE
虽然它仍然给我和 md5 哈希值。对私钥运行类似的命令会生成另一个 md5。由于这些不匹配,我现在可以假设 csr 不是从 key 生成的吗?
我能够使用以下命令检查 csr 中存储的值:
openssl req -in cert.csr -noout -text
我尝试生成一个具有相同值的新值。这并没有给我完全相同的结果 - 只有前三行是相同的。
有没有办法检查 csr 和 pem 文件是否真正匹配或是否存在混淆?
最佳答案
在Linux机器中运行这些命令并验证它们的md5值是否相等。
$ openssl rsa -noout -modulus -in key.pem | openssl md5
$ openssl req -noout -modulus -in key.csr | openssl md5
$ openssl x509 -noout -modulus -in key.crt | openssl md5
关于openssl - 比较 *.csr 和 *.pem 文件是否匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23546462/