跳至主要内容

憑證疑難排解

Docker 安裝支援

Docker 安裝僅支援開發和測試環境。對於生產環境,請在 Kubernetes 叢集上安裝 Rancher。

如何知道我的憑證是否為 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)