匯入 SSL / TLS 證書

您可以使用 IBM Cloud® Secrets Manager 匯入 SSL / TLS 證書,供您的應用程式或服務使用。

SSL / TLS 憑證是一種數位憑證,用於建立伺服器與用戶端之間的通訊隱私。 憑證由 憑證管理中心(CA)受信任的第三方組織或公司,負責發出數位憑證。 憑證管理中心通常會驗證被授與唯一憑證之個人的身分。 發出,並包含用來在端點之間建立信任及安全連線的資訊。 將憑證加到 Secrets Manager 範例後,您就可以使用它來保護雲端或內部部署的網路通訊。 您的憑證會安全地儲存在您專屬的 Secrets Manager 服務實例中,您可以集中管理其生命週期。

在 Secrets Manager 中,您匯入服務的憑證是匯入憑證 (imported_cert)。透過 Secrets Manager 向第三方憑證授權機構訂購的憑證是 公開憑證 (public_cert)。使用私人憑證授權機構建立的憑證為 私人 憑證 (private_cert)。

若要進一步瞭解您可以在 Secrets Manager中管理的密鑰類型,請參閱 何謂密鑰?

開始之前

開始之前,請確定您具有必要的存取層次。 若要建立或新增密鑰,您需要 撰寫者 服務角色或更高版本

在匯入憑證之前,請確定您:

  • 建立具有相符私密金鑰的 X.509 相容憑證 (選用)。
  • 將您的檔案轉換為隱私強化電子郵件 ( PEM ) 格式。
  • 保持私密金鑰未加密,以確保它可以匯入 Secrets Manager。

匯入現有憑證

您可以使用 Secrets Manager 來儲存外部憑證管理中心所簽署及發出的憑證檔。 匯入憑證檔案之後,您可以將憑證部署至應用程式及服務、下載憑證,或在需要更新時 手動輪換憑證

在使用者介面中匯入憑證

您可以使用 Secrets Manager 使用者介面來匯入現有憑證。

  1. 在主控台中,按一下 功能表 圖示 「功能表」圖示 > 資源清單

  2. 從服務清單中,選取 Secrets Manager的實例。

  3. 密鑰 表格中,按一下 新增

  4. 下一步

  5. 加入名稱和說明,方便識別您的秘密。

  6. 選取要指定給密碼的密碼群組。

    沒有秘密小組嗎? 在 密鑰群組 欄位中,您可以按一下 建立,以提供新群組的名稱及說明。 您的密鑰會自動新增至新群組。 如需密鑰群組的相關資訊,請參閱 組織密鑰

  7. 選用項目: 新增標籤以協助您在實例中搜尋類似的密鑰。

  8. 選用項目: 將 meta 資料新增至密鑰或密鑰的特定版本。

    1. 上傳檔案或以 JSON 格式輸入 meta 資料及版本 meta 資料。
  9. 下一步

  10. 選取匯入證書磁磚

  11. 選取憑證檔或輸入其值。

您可以儲存 PEM 格式的未過期 X.509 憑證檔案。 如果您使用不同格式的憑證,則可以使用指令行公用程式將憑證轉換為 .pem。 如需相關資訊,請參閱 為何無法匯入我的憑證?

  1. 選用項目: 選取私密金鑰檔或輸入其值。

如果您選擇儲存私密金鑰,請確定它符合您的憑證。 私密金鑰必須先取消加密,然後才能將它匯入至服務。

  1. 選用項目: 選取中繼憑證檔案或輸入其值。
  2. 下一步
  3. 檢閱憑證的詳細資料。
  4. 按一下新增

從 CLI 匯入憑證

在開始之前,請按照 CLI 文件 設定您的 API 端點。

若要使用 Secrets Manager CLI 外掛程式匯入憑證,請執行 ibmcloud secrets-manager secret-create 指令。 例如,下列指令會匯入憑證及其私密金鑰和中繼憑證。

您可以匯入採用 .pem 格式的憑證檔案。 請務必將 PEM 檔案轉換為單行格式,以便 Secrets Manager CLI 可以正確解析。

certificate=$(cat cert.pem)
private_key=$(cat key.pem)

ibmcloud secrets-manager secret-create --secret-name example-imported-cert-secret --secret-type imported_cert --imported-cert-certificate ${certificate} --imported-cert-private-key ${private_key}

指令會輸出密鑰的 ID 值,以及其他 meta 資料。 如需指令選項的相關資訊,請參閱 ibmcloud secrets-manager secret-create

使用 API 匯入憑證

您可以透過呼叫 Secrets Manager API,以程式化方式匯入憑證。

下列範例顯示可用來匯入現有憑證的查詢。 當您呼叫 API 時,請將 ID 變數及 IAM 記號取代為 Secrets Manager 實例特定的值。

您可以使用 custom_metadataversion_custom_metadata 要求參數來儲存與組織需求相關的 meta 資料。 僅針對密鑰版本傳回 version_custom_metadata 的值。 密鑰的自訂 meta 資料會儲存為最多 50 個版本的所有其他 meta 資料,而且您不得包含機密資料。

您可以匯入採用 .pem 格式的憑證檔案。 請務必將 您的 PEM 檔案轉換為單行格式,以便 Secrets Manager API 能正確解析。

curl -X POST  
    -H "Authorization: Bearer {iam_token}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
            "name": "example-imported-certificate",
            "description": "description of my imported certificate.",
            "secret_type": "imported_cert",
            "secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
            "labels": [
                "dev",
                "us-south"
            ],
            "certificate": "-----BEGIN CERTIFICATE-----\nMIIE3jCCBGSgAwIBAgIUZfTbf3adn87l5J2Q2Aw+6Vk/qhowCgYIKoZIzj0EAwIw\n-----END CERTIFICATE-----",
            "intermediate": "-----BEGIN CERTIFICATE-----\nMIIE3DCCBGKgAwIBAgIUKncnp6BdSUKAFGBcP4YVp/gTb7gwCgYIKoZIzj0EAwIw\n-----END CERTIFICATE-----",
            "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAqcRbzV1wp0nVrPtEpMtnWMO6Js1q3rhREZluKZfu0Q8SY4H3\n-----END RSA PRIVATE KEY-----",
            "custom_metadata": {
                "metadata_custom_key": "metadata_custom_value"
            },
            "version_custom_metadata": {
                "custom_version_key": "custom_version_value"
            }
        }' \
    "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"

成功的回應會傳回秘密的 ID 值以及其他元資料。 如需必要及選用要求參數的相關資訊,請參閱 建立密鑰

使用 Terraform 匯入憑證

您可以使用 Terraform for Secrets Manager以程式化方式匯入憑證。

下列範例顯示可用來匯入現有憑證的查詢。

    resource "ibm_sm_imported_certificate" "sm_imported_certificate" {
        instance_id = local.instance_id
        region = local.region
        name = "test-imported-certificate"
        secret_group_id = "default"
        certificate  = file("path_to_certificate_file")
        intermediate = file("path_to_intermediate_certificate_file")
        private_key  = file("path_to_private_key_file")
    }

使用適用於 Secrets Manager Secret 的 Terraform IBM Modules (TIM) 有效管理導入的憑證,以進行宣告式基礎架構管理。 檢閱 Terraform IBM 模組 文件。

建立憑證簽名要求

您可以使用匯入的憑證機密來產生憑證簽章請求 (CSR),然後在外部與憑證授權機構簽章,並將其加回匯入的憑證機密。

匯入的憑證秘密會在預啟動狀態下建立。 要啟用它,您應該下載 CSR 檔案,用您的憑證授權機構簽署它,然後將簽署的憑證重新加入為新的秘密版本。

在使用者介面中建立憑證簽章請求

您可以使用 Secrets Manager UI 建立證書簽章請求。

  1. 在主控台中,按一下 功能表 圖示 「功能表」圖示 > 資源清單

  2. 從服務清單中,選取 Secrets Manager的實例。

  3. 密鑰 表格中,按一下 新增

  4. 從密碼類型清單中,點選匯入憑證磁磚。

  5. 下一步

  6. 加入名稱和說明,方便識別您的秘密。

  7. 選取您要指派給密鑰的 密鑰群組實例中包含密鑰的環境及限制必須遵循。 使用者可以與秘密群組相關聯,以實現存取和協作。

    沒有秘密小組嗎? 在 密鑰群組 欄位中,您可以按一下 建立,以提供新群組的名稱及說明。 您的密鑰會自動新增至新群組。 如需密鑰群組的相關資訊,請參閱 組織密鑰

  8. 選用項目: 新增標籤以協助您在實例中搜尋類似的密鑰。

  9. 選用項目: 將 meta 資料新增至密鑰或密鑰的特定版本。

    上傳檔案或以 JSON 格式輸入 meta 資料及版本 meta 資料。

  10. 下一步

  11. 選擇「建立憑證簽章請求 (CSR)」 磁磚。

  12. 新增常用名稱

  13. 可選:新增主題欄位。

  14. 可選:選取金鑰演算法。 如果未選擇,則採用 RSA 作為預設值。

  15. 可選:選擇證書角色。

  16. 下一步

  17. 檢視證書簽章請求的詳細資訊。

  18. 按一下新增

在使用者介面中更新及下載證書簽章請求

  1. 在您要更新的秘密的行中,按一下行動功能表 行動圖示 > 詳細資料

  2. 詳細資料頁面中,使用已管理 CSR 索引標籤編輯憑證簽章請求欄。

    更新通用名或主體替代名時,至少保持其中一個名稱不變,以維持證書主體的一致性。

  3. 按一下更新。

  4. 開啟 Secret the Managed CSR 索引標籤,然後按一下 Download CSR 下載證書簽章要求檔案。

    取得證書簽章請求檔案後,您應該聯絡您的簽章證書授權機構,並簽署您的 CSR 檔案,以取得簽章證書。

將已簽署的憑證重新加入使用者介面

使用 管理 CSR 手動輪換已 匯入憑證中所述的程序,將已簽署的憑證檔案加回 Secrets Manager 範例中的秘訣。

使用 API 建立憑證簽章請求

您可以調用 Secrets Manager API 程式化地建立證書簽章請求。
當您呼叫 API 時,請將 ID 變數及 IAM 記號取代為 Secrets Manager 實例特定的值。

您可以使用 custom_metadataversion_custom_metadata 要求參數來儲存與組織需求相關的 meta 資料。 僅針對密鑰版本傳回 version_custom_metadata 的值。 密鑰的自訂 meta 資料會儲存為最多 50 個版本的所有其他 meta 資料,而且您不得包含機密資料。

curl -X POST  
    -H "Authorization: Bearer {iam_token}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
            "name": "example-csr",
            "description": "description of my csr.",
            "secret_type": "imported_cert",
            "secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
            "labels": [
                "dev",
                "us-south"
            ],
            "managed_csr": {
              "require_cn": true,
              "common_name": "example.com",
              "ip_sans": "127.0.0.1",
              "uri_sans": "https://www.example.com/test",
              "other_sans": "2.5.4.5;UTF8:*.example.com",
              "exclude_cn_from_sans": false
            },
            "custom_metadata": {
                "metadata_custom_key": "metadata_custom_value"
            },
            "version_custom_metadata": {
                "custom_version_key": "custom_version_value"
            }
        }' \
    "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"

成功的回應會傳回秘密的 ID 值以及其他元資料。 如需必要及選用要求參數的相關資訊,請參閱 建立密鑰

使用 API 更新和下載證書簽章請求

您可以調用 Secrets Manager API 程式化地更新證書簽章請求。
當您呼叫 API 時,請將 ID 變數及 IAM 記號取代為 Secrets Manager 實例特定的值。

curl -X POST  
    -H "Authorization: Bearer {iam_token}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
            "name": "example-csr",
            "description": "description of my csr.",
            "secret_type": "imported_cert",
            "secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
            "labels": [
                "dev",
                "us-south"
            ],
            "managed_csr": {
              "alt_names": "alt1"
            }
        }' \
    "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"

成功的回應會傳回秘密的 ID 值以及其他元資料。 如需必要及選用要求參數的相關資訊,請參閱 建立密鑰

將已簽署的憑證加入 API

使用「手動輪換匯入的 憑證」中所述的程序,將已簽署的憑證檔案重新加入 Secrets Manager 範例的秘密中。

從 CLI 建立憑證簽章請求

在開始之前,請按照 CLI 文件 設定您的 API 端點。

要使用 Secrets Manager CLI 外掛程式建立證書簽章請求,請執行 ibmcloud secrets-manager secret-create 指令。 例如,下面的命令創建一個證書簽章請求,使用 --imported-cert-managed-csr 選項添加欄位 common_name,值為 example.com. 檢閱 Secrets Manager API 文件,以取得支援的選用主題欄位完整清單。

ibmcloud secrets-manager secret-create --secret-name example-imported-cert-csr-secret --secret-type imported_cert --imported-cert-managed-csr '{"common_name":"example.com"}'

從 CLI 更新和下載證書簽章請求

在開始之前,請按照 CLI 文件 設定您的 API 端點。

要使用 Secrets Manager CLI 外掛程式更新證書簽章請求,請執行 ibmcloud secrets-manager secret-metadata-update 指令。 例如,下面的命令使用 --imported-cert-managed-csr 選項更新了證書簽章請求,添加了 alt_names 欄位,其值為 alt1. 檢閱 Secrets Manager API 文件,以取得支援的選用主題欄位完整清單。

ibmcloud secrets-manager secret-metadata-update --id SECRET_ID --imported-cert-managed-csr '{"alt_names":"alt1"}'

若要使用 Secrets Manager CLI 外掛程式取得證書簽章請求,請執行 ibmcloud secrets-manager secret-metadata 指令。

ibmcloud secrets-manager secret-metadata --id SECRET_ID

從 CLI 加回已簽署的憑證

使用「手動輪換匯入的 憑證」中所述的程序,將已簽署的憑證檔案重新加入 Secrets Manager 範例的秘密中。