如何了解 SSL 证书的类型?

如何了解 SSL 证书的类型?

我通过电子邮件从我的认证机构收到了一份证书,其开头如下:

-----BEGIN CERTIFICATE-----
MIAGCSqGSIb3DQEHAqCAMIACAQExADALBgkqhkiG9w0BBwGggDCCBWMwggRLoAMC

结尾如下:

14lWAyMfs77oOghZtOxFNfeKW/9mz1Cvxm1XjRl4t7mi0VfqH5pLr7rJjhJ+xr3/
AAAxAAAAAAAAAA==
-----END CERTIFICATE-----

我通过电子邮件收到了它,然后将证书部分复制/粘贴到了 test.cer 文件中(我重复了四遍 - 检查我复制/粘贴的是正确的部分)

当我尝试在 Apache 2 中使用它时,出现以下错误:

[Mon Sep 30 23:15:36.754820 2013] [ssl:emerg] [pid 7544:tid 444] AH02241: Init: Unable to read server certificate from file C:/projects/test-ssl/test.cer
[Mon Sep 30 23:15:36.754820 2013] [ssl:emerg] [pid 7544:tid 444] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Mon Sep 30 23:15:36.754820 2013] [ssl:emerg] [pid 7544:tid 444] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=X509)
[Mon Sep 30 23:15:36.754820 2013] [ssl:emerg] [pid 7544:tid 444] AH02312: Fatal error initialising mod_ssl, exiting.

经过一番研究,我发现原因可能是证书已损坏,因此为了检查它,我使用以下方法进行了测试

C:\Apache24\bin\openssl.exe x509 -in test.cer -text

我得到了类似的错误:

unable to load certificate
8100:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:.\crypto\asn1\tasn_dec.c:1319:
8100:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:.\crypto\asn1\tasn_dec.c:381:Type=X509_CINF
8100:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:.\crypto\asn1\tasn_dec.c:751:Field=cert_info, Type=X509
8100:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:.\crypto\pem\pem_oth.c:83:

我不是 SSL 专家,但我怀疑认证机构(赛门铁克)向我发送了损坏的证书。

知道这个证书可能有什么问题吗? 它可能是我所不知道的其他格式吗?

答案1

尝试将该证书导入到某个 NSS 存储区。例如,导入到使用 NSS 的 Firefox。这是 SSL 的另一种实现(实际上是第一种),您可以看到证书的属性……当然,前提是您导入成功。否则,您得到的是错误的证书。

答案2

确保最后一行最后一个破折号后没有最后的回车符:

AAAxAAAAAAAAAA==
-----END CERTIFICATE-----

并不是

AAAxAAAAAAAAAA==
-----END CERTIFICATE-----
.

(请忽略点:)

答案3

请务必包括

。 - - - -开始 - - -

。 - - 结尾 - -

零件与发送给您的完全一样。

还要注意,开始应该是第一行,结束应该是最后一行。周围不应该有空格。最后...如果您在混合使用 Windows 计算机,则换行符 (\n) 可能由 Windows 系统添加了 (\r)。十六进制编辑器可能是检查此问题的最快方法。

相关内容