建立主要憑證管理中心
透過 IBM Cloud® Secrets Manager,您可以建立根憑證授權機構和中間憑證授權機構 (CA),從而建立和管理自己的公開金鑰基礎架構 (PKI) 系統。
憑證授權機構 (CA) 是簽署和簽發您的 SSL / TLS 憑證的實體。 如果您正在尋找快速產生自我簽署憑證的能力,您可以使用 Secrets Manager 來建立內部簽署的根憑證機構。 您可以使用此 CA 作為憑證鏈的信任錨點。 為您的實例建立根憑證機構後,您可以使用它簽署較低層級或從屬憑證機構,例如您在服務中建立的其他中間憑證機構。
每個實例最多可以建立 10 個主要憑證管理中心。 若要檢視您的實體可用的設定清單,請前往 Secrets Manager UI 中的 Secrets engines > Private certificates 頁面。
開始之前
開始之前,請確定您具有必要的存取層次。 若要管理實例的引擎配置,您需要 管理員 服務角色或更高版本。
在使用者介面中建立主要憑證管理中心
您可以使用 Secrets Manager 使用者介面,為服務實例建立內部簽署的主要憑證管理中心。
-
在主控台中,按一下 功能表 圖示
> 資源清單。
-
從服務清單中,選取 Secrets Manager的實例。
-
在「密鑰引擎」頁面中,按一下 專用憑證 標籤。
-
在「憑證管理中心」表格中,按一下 建立憑證管理中心 以啟動建立精靈。
-
指定憑證管理中心類型及選項。
- 選取 主要憑證管理中心 作為權限類型。
- 輸入名稱以輕鬆識別您的憑證管理中心。
- 選取要為此 CA 產生之憑證的存活時間上限 (TTL)。 TTL 會決定 CA 憑證保持有效的時間長度。
- 選取鏈中可存在的子層或低階中繼憑證數目上限。
- 若要將頒發 CA 證書 URL 編碼為中間 CA 證書,請將 「編碼 URL 選項設為 「已啟用」。
-
輸入主要 CA 憑證的主題名稱欄位。
-
選取金鑰管理服務。 選擇Secrets Manager用於由服務在內部建立根憑證授權單位金鑰的服務,或選擇Hyper Protect Crypto Services (HPCS)。 如果選擇 HPCS,請執行下列任務:
-
選擇您的 HPCS 實例或手動輸入您的 HPCS 實例 CRN
-
選擇先前建立的用於透過 HPCS 進行驗證的 IAM 憑證金鑰。
一旦在 CA 配置中設定了 IAM 憑證,以後就無法取代。
-
從關鍵程式庫清單中選擇 HPCS 私有關鍵程式庫,或手動輸入關鍵程式庫 ID。
-
選擇使用現有密鑰或產生新密鑰。 如果選擇現有 HPCS 私鑰或手動輸入私鑰 ID,請確保公鑰存在且其 ID 與私鑰庫中的私鑰相同。
如果您選擇產生新金鑰,在刪除組態時,這些金鑰不會被 Secrets Manager 刪除。
-
-
選取金鑰演算法,以用來產生 CA 憑證的公開和私密金鑰。
-
決定是否啟用 CA 憑證的憑證撤銷清冊 (CRL) 建置及配送點。
CRL 是憑證管理中心在其排定到期日之前撤銷的憑證清單。 應用程式無法再信任列在 CRL 中的憑證。
- 若要針對具有每一個憑證申請的主要 CA 建置 CRL,請將 CRL 建置 選項設為 已啟用。
- 若要在根 CA 憑證中編碼撤銷清單的 URL,請將 CRL 分發點選項設定為啟用。
- 選取所產生 CRL 的存活時間 (TTL)。 TTL 會決定 CRL 維持有效的時間長度。
-
檢閱您的選擇。 若要建立主要 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 使用者介面來擷取主要憑證管理中心值。
- 在 公用憑證 密鑰引擎中,按一下 動作 功能表
,以開啟引擎配置的選項清單。
- 若要檢視組態值,請按一下檢視組態。
- 確定您位於安全環境之後,請按一下 確認。
密鑰值會顯示 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 資料。 如需必要及選用要求參數的相關資訊,請參閱 取得密鑰。
下一步
- 建立中介憑證管理中心
- 使用適用於 Secrets Manager 私人憑證引擎 for Terraform 的 Terraform IBM Modules (TIM) 簡化根 CA 設定。