私钥与证书不匹配

时间:2020-10-29 13:13:46

标签: ssl openssl ssl-certificate

我在从中生成CSR和证书时遇到了一些奇怪的问题,我对此并不完全理解。

这就是我所做的:

生成私钥和CSR(如果有重要意义,请在WSL的Ubuntu上完成)

openssl req -newkey rsa:2048 -keyout PRIVATEKEY.key -out MYCSR.csr

将其上载到CA并获取以-----BEGIN CERTIFICATE-----开头的证书,该证书表示PEM编码的证书,对吗?

尝试将所有这些内容合并到一个PFX中以方便使用

openssl pkcs12 -export -out CERTIFICATE.pfx -inkey PRIVATEKEY.key -in CERTIFICATE.cer

然后它询问私钥,然后抛出错误No certificate matches private key

有人建议将证书从DER重新编码为PEM,但这只会引发错误,表明证书已经是X509

sudo openssl x509 -inform DER -outform PEM -in CERTIFICATE.cer -out CERTIFICATE.pem
unable to load certificate
140390322082240:error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag:../crypto/asn1/tasn_dec.c:1130:
140390322082240:error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error:../crypto/asn1/tasn_dec.c:290:Type=X509

以下命令生成的输出非常合理,因此证书在某种程度上似乎还可以

openssl x509 -in CERTIFICATE.cer -text -noout

如果这对任何人都有用,则CA是Telia。过去,我在使用它们时遇到了一些问题,例如Digicert的证书实用程序出于某种原因无法识别其证书有效(但这当然可能是由于我使用了错误的文件扩展名或其他原因造成的)。

1 个答案:

答案 0 :(得分:0)

此问题是由于Telia用户界面中的续订过程引起的,它允许您在续订期间上载新的CSR,但实际上它忽略了这一点,并在不告知您的情况下使用了旧的CSR。