本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

证书故障排除

我如何知道我的证书是否为PEM格式?

您可以通过以下特征识别PEM格式:

  • 文件以以下头部开头:

      -----BEGIN CERTIFICATE-----
  • 头部后面跟着一长串字符。

  • 文件以以下页脚结束: ----END CERTIFICATE----

PEM证书示例:

----BEGIN CERTIFICATE-----
MIIGVDCCBDygAwIBAgIJAMiIrEm29kRLMA0GCSqGSIb3DQEBCwUAMHkxCzAJBgNV
... more lines
VWQqljhfacYPgp8KJUJENQ9h5hZ2nSCrI+W00Jcw4QcEdCI8HL5wmg==
-----END CERTIFICATE-----

PEM证书密钥示例:

-----BEGIN RSA PRIVATE KEY-----
MIIGVDCCBDygAwIBAgIJAMiIrEm29kRLMA0GCSqGSIb3DQEBCwUAMHkxCzAJBgNV
... more lines
VWQqljhfacYPgp8KJUJENQ9h5hZ2nSCrI+W00Jcw4QcEdCI8HL5wmg==
-----END RSA PRIVATE KEY-----

如果您的密钥看起来像下面的示例,请参见将证书密钥从PKCS8转换为PKCS1.

-----BEGIN PRIVATE KEY-----
MIIGVDCCBDygAwIBAgIJAMiIrEm29kRLMA0GCSqGSIb3DQEBCwUAMHkxCzAJBgNV
... more lines
VWQqljhfacYPgp8KJUJENQ9h5hZ2nSCrI+W00Jcw4QcEdCI8HL5wmg==
-----END PRIVATE KEY-----

将证书密钥从PKCS8转换为PKCS1

如果您使用的是PKCS8证书密钥文件,Rancher将记录以下行:

ListenConfigController cli-config [listener] failed with : failed to read private key: asn1: structure error: tags don't match (2 vs {class:0 tag:16 length:13 isCompound:true})

要使其工作,您需要使用以下命令将密钥从PKCS8转换为PKCS1:

openssl rsa -in key.pem -out convertedkey.pem

您现在可以将`convertedkey.pem`用作Rancher的证书密钥文件。

如果我想添加我的中间证书,证书的顺序是什么?

添加证书的顺序如下:

-----BEGIN CERTIFICATE-----
%YOUR_CERTIFICATE%
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
%YOUR_INTERMEDIATE_CERTIFICATE%
-----END CERTIFICATE-----

我如何验证我的证书链?

您可以使用`openssl`二进制文件验证证书链。如果命令的输出(请参见下面的命令示例)以`Verify return code: 0 (ok)结尾,则您的证书链是有效的。`ca.pem 文件必须与您添加到 rancher/rancher 容器中的文件相同。

当使用由认可的证书颁发机构签署的证书时,您可以省略 -CAfile 参数。

命令:

openssl s_client -CAfile ca.pem -connect rancher.yourdomain.com:443
...
    Verify return code: 0 (ok)