建立主要憑證管理中心

透過 IBM Cloud® Secrets Manager,您可以建立根憑證授權機構和中間憑證授權機構 (CA),從而建立和管理自己的公開金鑰基礎架構 (PKI) 系統。

憑證授權機構 (CA) 是簽署和簽發您的 SSL / TLS 憑證的實體。 如果您正在尋找快速產生自我簽署憑證的能力,您可以使用 Secrets Manager 來建立內部簽署的根憑證機構。 您可以使用此 CA 作為憑證鏈的信任錨點。 為您的實例建立根憑證機構後,您可以使用它簽署較低層級或從屬憑證機構,例如您在服務中建立的其他中間憑證機構。

每個實例最多可以建立 10 個主要憑證管理中心。 若要檢視您的實體可用的設定清單,請前往 Secrets Manager UI 中的 Secrets engines > Private certificates 頁面。

開始之前

開始之前,請確定您具有必要的存取層次。 若要管理實例的引擎配置,您需要 管理員 服務角色或更高版本

在使用者介面中建立主要憑證管理中心

您可以使用 Secrets Manager 使用者介面,為服務實例建立內部簽署的主要憑證管理中心。

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

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

  3. 在「密鑰引擎」頁面中,按一下 專用憑證 標籤。

  4. 在「憑證管理中心」表格中,按一下 建立憑證管理中心 以啟動建立精靈。

  5. 指定憑證管理中心類型及選項。

    1. 選取 主要憑證管理中心 作為權限類型。
    2. 輸入名稱以輕鬆識別您的憑證管理中心。
    3. 選取要為此 CA 產生之憑證的存活時間上限 (TTL)。 TTL 會決定 CA 憑證保持有效的時間長度。
    4. 選取鏈中可存在的子層或低階中繼憑證數目上限。
    5. 若要將頒發 CA 證書 URL 編碼為中間 CA 證書,請將 「編碼 URL 選項設為 「已啟用」
  6. 輸入主要 CA 憑證的主題名稱欄位。

  7. 選取金鑰管理服務。 選擇Secrets Manager用於由服務在內部建立根憑證授權單位金鑰的服務,或選擇Hyper Protect Crypto Services (HPCS)。 如果選擇 HPCS,請執行下列任務:

    1. 選擇您的 HPCS 實例或手動輸入您的 HPCS 實例 CRN

    2. 選擇先前建立的用於透過 HPCS 進行驗證的 IAM 憑證金鑰。

      一旦在 CA 配置中設定了 IAM 憑證,以後就無法取代。

    3. 從關鍵程式庫清單中選擇 HPCS 私有關鍵程式庫,或手動輸入關鍵程式庫 ID。

    4. 選擇使用現有密鑰或產生新密鑰。 如果選擇現有 HPCS 私鑰或手動輸入私鑰 ID,請確保公鑰存在且其 ID 與私鑰庫中的私鑰相同。

      如果您選擇產生新金鑰,在刪除組態時,這些金鑰不會被 Secrets Manager 刪除。

  8. 選取金鑰演算法,以用來產生 CA 憑證的公開和私密金鑰。

  9. 決定是否啟用 CA 憑證的憑證撤銷清冊 (CRL) 建置及配送點。

    CRL 是憑證管理中心在其排定到期日之前撤銷的憑證清單。 應用程式無法再信任列在 CRL 中的憑證。

    1. 若要針對具有每一個憑證申請的主要 CA 建置 CRL,請將 CRL 建置 選項設為 已啟用
    2. 若要在根 CA 憑證中編碼撤銷清單的 URL,請將 CRL 分發點選項設定為啟用
    3. 選取所產生 CRL 的存活時間 (TTL)。 TTL 會決定 CRL 維持有效的時間長度。
  10. 檢閱您的選擇。 若要建立主要 CA,請按一下 建立

現在,您可以在以下情況下選擇此根 CA:建立具有內部簽名的中間 CA。 若要修改或刪除現有配置,請按一下行動選單操作圖示 在您要更新的憑證授權單位的行中。

使用 API 建立主要憑證管理中心

您可以呼叫 Secrets Manager API,為服務實例建立內部簽署的主要憑證管理中心。

下列範例顯示可用來建立主要憑證管理中心的查詢。

curl -X POST
  --H "Authorization: Bearer {iam_token}" \
  --H "Accept: application/json" \
  --H "Content-Type: application/json" \
  --d '{
  "config_type": "private_cert_configuration_root_ca",
  "name": "test-root-CA",
  "common_name": "example.com",
  "crl_disable": false,
  "crl_distribution_points_encoded": true,
  "issuing_certificates_urls_encoded": true,
  "max_ttl": "43830h"
}' \  
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"

如果您攜帶自己的 HSM,請在請求中包含以下內容:

"crypto_key": {
    "label": "my_key",
    "allow_generate_key": true,
    "provider": {
      "type": "hyper_protect_crypto_services",
      "instance_crn": "replace_with_hpcs_crn::",
      "pin_iam_credentials_secret_id": "replace_with_iam_credentials_secret_guid",
      "private_keystore_id": "replace_with_keystore_id"
    }
  }

成功回應會將配置新增至服務實例。

{
  "common_name": "example.com",
  "config_type": "private_cert_configuration_root_ca",
  "created_at": "2022-06-27T11:58:15Z",
  "created_by": "iam-ServiceId-e4a2f0a4-3c76-4bef-b1f2-fbeae11c0f21",
  "crl_disable": false,
  "crl_distribution_points_encoded": true,
  "data": {
    "certificate": "-----BEGIN CERTIFICATE-----\nMIIGRjCCBS6gAwIBAgIUSKW6zI+E9JU4bva\n-----END CERTIFICATE-----",
    "expiration": 1825612535,
    "issuing_ca": "-----BEGIN CERTIFICATE-----\nMIIGRjCCBS6gAwIBAgIUSKW6zI+E9JU4bvad\n-----END CERTIFICATE-----",
    "serial_number": "48:a5:ba:cc:8f:84:f4:95:38:6e:f6:9d:9e:d7:8f:d8:43:d3:55:bd"
  },
  "exclude_cn_from_sans": false,
  "format": "pem",
  "issuing_certificates_urls_encoded": true,
  "max_path_length": -1,
  "max_ttl_seconds": 31536000,
  "name": "test-root-CA",
  "private_key_format": "der",
  "secret_type": "private_cert",
  "updated_at": "2022-10-05T21:33:11Z"
}

如需必要及選用要求參數的相關資訊,請參閱 新增配置

從 CLI 建立主要憑證管理中心

您可以使用 ibmcloud secrets-manager configuration-create 指令,為服務實例建立內部簽署的主要憑證管理中心。

下列範例顯示可用來建立主要憑證管理中心的指令。

ibmcloud secrets-manager configuration-create
  --configuration-prototype='{
    "config_type": "private_cert_configuration_root_ca",
    "name": "example-root-CA",
    "max_ttl": "43830h",
    "crl_expiry": "72h",
    "crl_disable": false,
    "crl_distribution_points_encoded": true,
    "issuing_certificates_urls_encoded": true,
    "common_name": "example.com",
    "alt_names": [
      "alt-name-1","alt-name-2"
      ],
    "ip_sans": "127.0.0.1",
    "uri_sans": "https://www.example.com/test",
    "other_sans": ["1.2.3.5.4.3.201.10.4.3;utf8:test@example.com"],
    "ttl": "2190h",
    "format": "pem",
    "private_key_format": "der",
    "key_type": "rsa",
    "key_bits": 4096,
    "max_path_length": -1,
    "exclude_cn_from_sans": false,
    "permitted_dns_domains": ["exampleString"],
    "ou": ["exampleString"],
    "organization": ["exampleString"],
    "country": ["exampleString"],
    "locality": ["exampleString"],
    "province": ["exampleString"],
    "street_address": ["exampleString"],
    "postal_code": ["exampleString"],
    "serial_number": "d9:be:fe:35:ba:09:42:b5:35:ba:09:42:b5"
  }'

如果您自備 HSM,請在指令中包含以下內容:

"crypto_key": {
    "label": "my_key",
    "allow_generate_key": true,
    "provider": {
      "type": "hyper_protect_crypto_services",
      "instance_crn": "replace_with_hpcs_crn::",
      "pin_iam_credentials_secret_id": "replace_with_iam_credentials_secret_guid",
      "private_keystore_id": "replace_with_keystore_id"
    }
  }

使用 Terraform 建立主要憑證管理中心

您可以使用 Terraform for Secrets Manager為服務實例建立內部簽署的主要憑證管理中心。

下列範例顯示可用來建立主要憑證管理中心的配置。

    resource "ibm_sm_private_certificate_configuration_root_ca" "test_root_ca" {
        instance_id = local.instance_id
        region = local.region
        name = "test-root-ca"
        common_name = "root.example.com"
        max_ttl = "3650d"
        issuing_certificates_urls_encoded = true
    }

如果您自備 HSM,請在配置中包含以下內容:

crypto_key {
    label = "my_key"
    allow_generate_key = true
    provider {
      type = "hyper_protect_crypto_services"
      instance_crn = "replace_with_hpcs_crn::"
      pin_iam_credentials_secret_id = "replace_with_iam_credentials_secret_guid"
      private_keystore_id = "replace_with_keystore_id"
    }
}

在使用者介面中擷取主要憑證管理中心

您可以使用 Secrets Manager 使用者介面來擷取主要憑證管理中心值。

  1. 公用憑證 密鑰引擎中,按一下 動作 功能表 「動作」圖示,以開啟引擎配置的選項清單。
  2. 若要檢視組態值,請按一下檢視組態
  3. 確定您位於安全環境之後,請按一下 確認

密鑰值會顯示 15 秒,然後對話框會關閉。

使用 CLI 擷取主要憑證管理中心

您可以使用 Secrets Manager CLI 來擷取主要憑證管理中心值。 在下列範例指令中,將引擎配置名稱取代為您配置的名稱。

ibmcloud secrets-manager configuration --name EXAMPLE_CONFIG --service-url https://{instance_ID}.{region}.secrets-manager.appdomain.cloud

{instance_ID}{region} 取代為適用於 Secrets Manager 服務實例的值。 要找到專屬於您的實例的端點 URL,您可以從 Secrets Manager UI 的端點頁面複製它。 如需相關資訊,請參閱 檢視端點 URL

使用 API 擷取主要憑證管理中心

您可以使用 Secrets Manager API 來擷取主要憑證管理中心值。 在下列範例要求中,將引擎配置名稱取代為您配置的名稱。

curl -X GET --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/{name}"

{instance_ID}{region} 取代為適用於 Secrets Manager 服務實例的值。 要找到專屬於您的實例的端點 URL,您可以從 Secrets Manager UI 的端點頁面複製它。 如需相關資訊,請參閱 檢視端點 URL

成功回應會傳回引擎配置的值,以及其他 meta 資料。 如需必要及選用要求參數的相關資訊,請參閱 取得密鑰

下一步