Stammzertifizierungsstellen erstellen

Mit IBM Cloud® Secrets Managerkönnen Sie ein eigenes PKI-System (Public Key Infrastructure) erstellen und verwalten, indem Sie Stamm-und Zwischenzertifizierungsstellen erstellen.

Eine Zertifizierungsstelle (Certificate Authority, CA) ist die Entität, die Ihre SSL/TLS-Zertifikate signiert und ausstellt. Wenn Sie die Möglichkeit suchen, schnell ein selbstsigniertes Zertifikat zu erstellen, können Sie Secrets Manager verwenden, um eine intern signierte Root-CA zu erstellen. Sie können diese Zertifizierungsstelle als Trust-Anchor für eine Zertifikatskette verwenden. Nachdem Sie eine Stammzertifizierungsstelle für Ihre Instanz erstellt haben, können Sie diese verwenden, um eine untergeordnete Zertifizierungsstelle zu signieren, z. B. andere Zwischenzertifizierungsstellen, die Sie im Dienst erstellen.

Sie können bis zu 10 Stammzertifizierungsstellen pro Instanz erstellen. Um eine Liste der Konfigurationen anzuzeigen, die für Ihre Instanz verfügbar sind, rufen Sie die Seite Engines für geheime Schlüssel > Private Zertifikate in der Secrets Manager -Benutzerschnittstelle auf.

Vorbereitende Schritte

Bevor Sie beginnen, müssen Sie prüfen, ob Sie über die erforderliche Zugriffsebene verfügen. Für die Verwaltung von Engine-Konfigurationen für Ihre Instanz benötigen Sie die Servicerolle Manager oder höher.

Stammzertifizierungsstelle in der Benutzerschnittstelle erstellen

Sie können eine intern signierte Stammzertifizierungsstelle für Ihre Dienstinstanz mithilfe der Benutzeroberfläche Secrets Manager erstellen.

  1. Klicken Sie in der Konsole auf das Symbol Menü Menüsymbol > Ressourcenliste.

  2. Wählen Sie in der Liste der Services Ihre Instanz von Secrets Manager aus.

  3. Klicken Sie auf der Seite Engines für geheime Schlüssel auf die Registerkarte Private Zertifikate.

  4. Klicken Sie in der Tabelle "Zertifizierungsstellen" auf Zertifizierungsstelle erstellen , um den Erstellungsassistenten zu starten.

  5. Geben Sie den Typ und die Optionen der Zertifizierungsstelle an.

    1. Wählen Sie Stammzertifizierungsstelle als Berechtigungstyp aus.
    2. Geben Sie einen Namen ein, um Ihre Zertifizierungsstelle leicht zu identifizieren.
    3. Wählen Sie eine maximale Lebensdauer (TTL, Time-to-Live) für das Zertifikat aus, das für diese Zertifizierungsstelle generiert wird. Die Lebensdauer bestimmt, wie lange das CA-Zertifikat gültig bleibt.
    4. Wählen Sie die maximale Anzahl an untergeordneten oder untergeordneten Zwischenzertifikaten aus, die in der Kette vorhanden sein können.
    5. Um die URL des ausstellenden CA-Zertifikats in CA-Zwischenzertifikate zu codieren, setzen Sie die Option URL codieren auf Aktiviert.
  6. Geben Sie die Betreffnamensfelder für Ihr Zertifikat der Stammzertifizierungsstelle ein.

  7. Wählen Sie den Dienst Schlüsselverwaltung. Wählen Sie den Dienst Secrets Manager, um die Schlüssel der Stammzertifizierungsstelle dienstintern zu erstellen, oder wählen Sie Hyper Protect Crypto Services (HPCS). Wenn HPCS ausgewählt ist, führen Sie die folgenden Aufgaben aus:

    1. Wählen Sie Ihre HPCS-Instanz oder geben Sie die CRN Ihrer HPCS-Instanz manuell ein

    2. Wählen Sie das IAM Credentials-Geheimnis, das zuvor für die Authentifizierung mit HPCS erstellt wurde.

      Sobald der IAM-Berechtigungsnachweis in der CA-Konfiguration festgelegt wurde, kann er später nicht mehr ersetzt werden.

    3. Wählen Sie den privaten HPCS-Keystore aus der Keystore-Liste aus, oder geben Sie die Keystore-ID manuell ein.

    4. Wählen Sie, ob Sie vorhandene Schlüssel verwenden oder neue Schlüssel erzeugen möchten. Wenn Sie einen vorhandenen privaten HPCS-Schlüssel auswählen oder die ID eines privaten Schlüssels manuell eingeben, vergewissern Sie sich, dass ein öffentlicher Schlüssel vorhanden ist und die gleiche ID wie der private Schlüssel im privaten Schlüsselspeicher hat.

      Wenn Sie sich entscheiden, neue Schlüssel zu erzeugen, werden diese Schlüssel nicht von Secrets Manager gelöscht, wenn die Konfiguration gelöscht wird.

  8. Schlüsselalgorithmus auswählen , den Sie zum Generieren des öffentlichen und des privaten Schlüssels für Ihr CA-Zertifikat verwenden möchten.

  9. Legen Sie fest, ob die Erstellung der Zertifikatswiderrufsliste (CRL) und die Verteilungspunkte für Ihr CA-Zertifikat aktiviert werden sollen.

    Eine CRL ist eine Liste von Zertifikaten, die von der ausstellenden Zertifizierungsstelle vor ihrem geplanten Ablaufdatum widerrufen wurden. Ein Zertifikat, das als Teil einer CRL aufgeführt ist, kann von Anwendungen nicht mehr anerkannt werden.

    1. Um bei jeder Zertifikatsanforderung eine CRL für Ihre Root-CA zu erstellen, setzen Sie die Option CRL-Erstellung auf Aktiviert.
    2. Um die URL der Widerrufsliste im Root-CA-Zertifikat zu codieren, setzen Sie die Option CRL-Verteilungspunkte auf Aktiviert.
    3. Wählen Sie eine Lebensdauer (Time-to-Live, TTL) der generierten CRL aus. Die Lebensdauer bestimmt, wie lange die CRL gültig bleibt.
  10. Prüfen Sie Ihre Auswahl. Klicken Sie zum Erstellen der Stammzertifizierungsstelle auf Erstellen.

Sie können diese Stammzertifizierungsstelle nun auswählen, wenn Sie Temporäre Zertifizierungsstelle mit interner Signatur erstellen. Klicken Sie zum Ändern oder Entfernen einer vorhandenen Konfiguration in der Zeile der Zertifizierungsstelle, die Sie aktualisieren möchten, auf Aktionen Menü Aktionssymbol.

Stammzertifizierungsstelle mit der API erstellen

Sie können eine intern signierte Stammzertifizierungsstelle für Ihre Dienstinstanz erstellen, indem Sie die API Secrets Manager aufrufen.

Das folgende Beispiel zeigt eine Abfrage, mit der Sie eine Stammzertifizierungsstelle erstellen können.

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"

Wenn Sie Ihr eigenes HSM mitbringen, fügen Sie dem Antrag folgende Angaben bei:

"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"
    }
  }

Eine erfolgreiche Antwort fügt die Konfiguration zu Ihrer Serviceinstanz hinzu.

{
  "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"
}

Weitere Informationen über die erforderlichen und optionalen Abfrageparameter finden Sie unter Hinzufügen einer Konfiguration.

Erstellen einer Stammzertifizierungsstelle über die CLI

Sie können eine intern signierte Stammzertifizierungsstelle für Ihre Serviceinstanz mit dem Befehl ibmcloud secrets-manager configuration-create erstellen.

Das folgende Beispiel zeigt einen Befehl, den Sie verwenden können, um eine Stammzertifizierungsstelle zu erstellen.

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"
  }'

Wenn Sie Ihr eigenes HSM mitbringen, fügen Sie Folgendes in den Befehl ein:

"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"
    }
  }

Erstellen einer Stammzertifizierungsstelle mit Terraform

Sie können eine intern signierte Stammzertifizierungsstelle für Ihre Serviceinstanz erstellen, indem Sie Terraform für Secrets Managerverwenden.

Das folgende Beispiel zeigt eine Konfiguration, die Sie zum Erstellen einer Stammzertifizierungsstelle verwenden können.

    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
    }

Wenn Sie Ihr eigenes HSM mitbringen, sollten Sie die folgenden Punkte in die Konfiguration aufnehmen:

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"
    }
}

Abrufen einer Stammzertifizierungsstelle in der Benutzeroberfläche

Sie können den Wert für die Stammzertifizierungsstelle über die Benutzerschnittstelle Secrets Manager abrufen.

  1. Klicken Sie in der Öffentliche Zertifikate-Engine für geheime Schlüssel auf das Aktionen Menü Aktionssymbol, um eine Liste mit Optionen für Ihre Enginekonfiguration zu öffnen.
  2. Um den Konfigurationswert anzuzeigen, klicken Sie auf Konfiguration anzeigen.
  3. Klicken Sie auf Bestätigen, nachdem Sie sichergestellt haben, dass Sie sich in einer sicheren Umgebung befinden.

Der Wert des geheimen Schlüssels wird 15 Sekunden lang angezeigt und der Dialog wird geschlossen.

Stammzertifizierungsstelle über die Befehlszeilenschnittstelle abrufen

Sie können den Wert der Stammzertifizierungsstelle über die Befehlszeilenschnittstelle von Secrets Manager abrufen. Ersetzen Sie im folgenden Beispielbefehl den Namen der Enginekonfiguration durch den Namen Ihrer Konfiguration.

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

Ersetzen Sie {instance_ID} und {region} durch die Werte, die für Ihre Serviceinstanz von Secrets Manager gelten. Um die Endpunkt-URL zu finden, die für Ihre Instanz spezifisch ist, können Sie sie von der Seite Endpunkte in der Benutzerschnittstelle von Secrets Manager kopieren. Weitere Informationen finden Sie unter Endpunkt-URLs anzeigen.

Stammzertifizierungsstelle über API abrufen

Sie können den Wert für die Stammzertifizierungsstelle mithilfe der API Secrets Manager abrufen. Ersetzen Sie in der folgenden Beispielanforderung den Namen der Enginekonfiguration durch den Namen Ihrer Konfiguration.

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}"

Ersetzen Sie {instance_ID} und {region} durch die Werte, die für Ihre Serviceinstanz von Secrets Manager gelten. Um die Endpunkt-URL zu finden, die für Ihre Instanz spezifisch ist, können Sie sie von der Seite Endpunkte in der Benutzerschnittstelle von Secrets Manager kopieren. Weitere Informationen finden Sie unter Endpunkt-URLs anzeigen.

Eine erfolgreiche Antwort gibt den Wert der Motorkonfiguration zusammen mit anderen Metadaten zurück. Weitere Informationen über die erforderlichen und optionalen Abfrageparameter finden Sie unter Abrufen eines Geheimnisses.

Nächste Schritte