Zertifikat mit einer Zertifikatsvorlage anfordern

Auf dieser Seite wird beschrieben, wie Sie ein Zertifikat mit einer Zertifikatvorlage anfordern.

Mit Zertifikatsvorlagen können Sie detaillierte Richtlinieneinstellungen implementieren Zertifikat erstellen. Mithilfe von Zertifikatsvorlagen können Sie beispielsweise die Ausstellung von Server-TLS-Zertifikaten für alle Zertifizierungsstellenpools in Ihrer Organisation standardisieren. Alternativ können Sie Zertifikatvorlagen verwenden, um Richtlinien auf einer detaillierteren Ebene anzuwenden, z. B. auf bestimmte Nutzer. Das ist nützlich, wenn Sie die Arten von Zertifikaten einschränken möchten, die von verschiedenen Personen ausgestellt werden können. Sie können Vorlagen auch wiederverwenden, für häufige Ausstellungsszenarien.

Hinweise

  1. Umgebung für den CA-Dienst vorbereiten

  2. So erhalten Sie die Berechtigungen, die Sie zum Ausstellen von Zertifikaten mithilfe einer Zertifikatsvorlage benötigen: Bitten Sie Ihren Administrator, Ihnen die Berechtigung „CA Service Certificate Template User“ (roles/privateca.templateUser) zu gewähren. IAM-Rolle für die Zertifikatsvorlage.

    Weitere Informationen zu den vordefinierten IAM-Rollen für Weitere Informationen zu CA Service finden Sie unter Zugriffssteuerung mit IAM.

    Informationen zum Zuweisen einer IAM-Rolle zu einem Hauptkonto finden Sie Siehe Eine einzelne Rolle zuweisen.

Zertifikatsausstellung testen

Bevor Sie eine Zertifikatsvorlage verwenden, um ein signiertes Zertifikat anzufordern, sollten Sie prüfen, ob mit der Vorlage ein Zertifikat generiert werden kann. Die Zertifikatsausstellung schlägt fehl, wenn ein Konflikt zwischen der Zertifizierungsstelle besteht die Ausstellungsrichtlinien des Pools und die Richtlinien der Zertifikatsvorlage. Wenn Sie die Ausstellung testen, können Sie diese Konflikte proaktiv erkennen und beheben. Testzertifikate sind nicht PEM-codiert, nicht signiert und die Generierung ist kostenlos.

So testen Sie die Zertifikatsausstellung mit einer Zertifikatsvorlage:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Certificate Authority Service auf.

    Zum Certificate Authority Service

  2. Klicken Sie auf den Tab Vorlagenmanager.

  3. Klicken Sie auf die Zertifikatsvorlage, die Sie testen möchten. Die Seite Vorlagendetails wird angezeigt.

  4. Klicken Sie auf Zertifikat erstellen und dann auf Testzertifikat ausstellen, um einen Testantrag zu erstellen. Das Formular für die Zertifikatsanfrage wird angezeigt.

  5. Geben Sie die folgenden Details an, die zum Erstellen einer Zertifikatsanfrage erforderlich sind:

    • Region: Speicherort des Zertifikats. Dies muss mit dem Standort des Zertifizierungsstellenpools übereinstimmen.
    • CA-Pool: Der für die Ausstellung des Zertifikats zuständige CA-Pool.
    • Zertifikatsvorlage: Die Vorlage, die Sie für die Ausstellung von Zertifikaten verwenden möchten.
    • Domain: Der Domainname der Website, die Sie mit einem SSL- oder TLS-Zertifikat sichern möchten.
  6. Klicken Sie auf Zertifikat generieren.

  7. Klicken Sie nach der Erstellung des Zertifikats auf Anzeigen. Das Test- oder Musterzertifikat wird auf derselben Seite in einem separaten Bereich angezeigt.

  8. Wenn die Zertifikatsausstellung aufgrund von Konflikten fehlschlägt, beheben Sie die Konflikte und reichen Sie den Test ein. Zertifikatsanfrage noch einmal an.

Zertifikate mit einer Zertifikatsvorlage ausstellen

So stellen Sie ein signiertes Zertifikat mit einer Zertifikatsvorlage aus:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Certificate Authority Service auf.

    Zum Certificate Authority Service}

  2. Klicken Sie auf den Tab Vorlagenmanager.

  3. Klicken Sie auf der Seite Zertifikatsvorlagen auf die Zertifikatsvorlage, die Sie verwenden möchten. Die Seite Vorlagendetails wird angezeigt.

  4. Klicken Sie auf Zertifikat erstellen.

  5. Wählen Sie eine Region aus. Diese Region muss mit der Region übereinstimmen des CA-Pools, den Sie verwenden möchten.

  6. Wählen Sie den CA-Pool aus.

  7. Informationen zum Generieren eines Zertifikats mit einer Anfrage zur Zertifikatsignierung (Certificate Signing Request, CSR) finden Sie unter Zertifikat mit CSR anfordern

  8. Informationen zum Generieren eines Zertifikats mit einem automatisch generierten Schlüssel finden Sie unter Zertifikat mit einem automatisch generierten Schlüssel anfordern

Zertifikat generieren

  1. Klicken Sie auf Zertifikat generieren. Wenn das Zertifikat erfolgreich generiert wurde, wird eine Meldung angezeigt.
  2. Um das generierte Zertifikat aufzurufen, klicken Sie auf Zertifikat ansehen. Klicken Sie auf Ansehen.

Optional: Signiertes Zertifikat herunterladen

  1. Klicken Sie zum Herunterladen der PEM-codierten Zertifikatskette auf Zertifikatskette herunterladen
  2. Klicken Sie auf Privaten Schlüssel herunterladen, um den zugehörigen PEM-codierten privaten Schlüssel herunterzuladen.

gcloud

Wenn Sie ein Zertifikat mit einer Zertifikatvorlage ausstellen möchten, fügen Sie dem Befehl gcloud privateca certificates create das Flag --template im folgenden Format hinzu:

--template=projects/PROJECT_ID/locations/LOCATION/certificateTemplates/CERTIFICATE_TEMPLATE

Ersetzen Sie CERTIFICATE_TEMPLATE durch den Namen der Zertifikatsvorlage, die Sie für die Ausstellung dieses Zertifikats verwenden möchten. Die angegebene Vorlage muss sich im wie der Pool der ausstellenden Zertifizierungsstelle. Siehe Beispiele für Generieren von DNS-Testzertifikaten und Generieren von Produktionszertifikaten

Terraform

/**
 * Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

resource "google_privateca_certificate_template" "template" {
  location    = "us-central1"
  name        = "my-certificate-template"
  description = "An updated sample certificate template"

  identity_constraints {
    allow_subject_alt_names_passthrough = true
    allow_subject_passthrough           = true

    cel_expression {
      description = "Always true"
      expression  = "true"
      location    = "any.file.anywhere"
      title       = "Sample expression"
    }
  }

  passthrough_extensions {
    additional_extensions {
      object_id_path = [1, 6]
    }

    known_extensions = ["EXTENDED_KEY_USAGE"]
  }

  predefined_values {
    additional_extensions {
      object_id {
        object_id_path = [1, 6]
      }

      value    = "c3RyaW5nCg=="
      critical = true
    }

    aia_ocsp_servers = ["string"]

    ca_options {
      is_ca                  = false
      max_issuer_path_length = 6
    }

    key_usage {
      base_key_usage {
        cert_sign          = false
        content_commitment = true
        crl_sign           = false
        data_encipherment  = true
        decipher_only      = true
        digital_signature  = true
        encipher_only      = true
        key_agreement      = true
        key_encipherment   = true
      }

      extended_key_usage {
        client_auth      = true
        code_signing     = true
        email_protection = true
        ocsp_signing     = true
        server_auth      = true
        time_stamping    = true
      }

      unknown_extended_key_usages {
        object_id_path = [1, 6]
      }
    }

    policy_ids {
      object_id_path = [1, 6]
    }
  }
}

resource "google_privateca_certificate_authority" "test_ca" {
  pool                     = "my-pool"
  certificate_authority_id = "my-certificate-authority-test-ca"
  location                 = "us-central1"
  deletion_protection      = false # set to true to prevent destruction of the resource
  config {
    subject_config {
      subject {
        organization = "HashiCorp"
        common_name  = "my-certificate-authority"
      }
      subject_alt_name {
        dns_names = ["hashicorp.com"]
      }
    }
    x509_config {
      ca_options {
        # is_ca *MUST* be true for certificate authorities
        is_ca = true
      }
      key_usage {
        base_key_usage {
          # cert_sign and crl_sign *MUST* be true for certificate authorities
          cert_sign = true
          crl_sign  = true
        }
        extended_key_usage {
          server_auth = false
        }
      }
    }
  }
  key_spec {
    algorithm = "RSA_PKCS1_4096_SHA256"
  }
}


resource "google_privateca_certificate" "default" {
  pool                  = "my-pool"
  location              = "us-central1"
  certificate_authority = google_privateca_certificate_authority.test_ca.certificate_authority_id
  lifetime              = "860s"
  name                  = "my-certificate-from-template"
  pem_csr               = tls_cert_request.example.cert_request_pem
  certificate_template  = google_privateca_certificate_template.template.id
}

resource "tls_private_key" "example" {
  algorithm = "RSA"
}

resource "tls_cert_request" "example" {
  private_key_pem = tls_private_key.example.private_key_pem

  subject {
    common_name  = "example.com"
    organization = "ACME Examples, Inc"
  }
}

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Um einen Link zum Zertifikatsanfrageformular mit anderen Personen in Ihrer Organisation zu teilen, dass sie ein Zertifikat mit denselben Parametern anfordern können, gehen Sie so vor:

Console

  1. Rufen Sie in der Google Cloud Console den Tab CA-Poolmanager auf und klicken Sie auf Link zum Antragsformular freigeben.
  2. Wählen Sie im angezeigten Bereich Share request form link den Zertifizierungsstellenpool aus. und die Zertifikatsvorlage, die Sie für die Erstellung Ihrer Anfrage ausgewählt haben. Der Link zur Zertifikatsanfrage wird angezeigt.
  3. Kopieren Sie den Link und teilen Sie ihn nach Bedarf.

Richtlinienkonflikte lösen

Zertifikatsanfragen schlagen mit dem Fehler „Ungültiges Argument“ fehl, wenn zwischen der Ausstellungsrichtlinie des CA-Pools und der Zertifikatsvorlage ein Konflikt besteht. Das ist beispielsweise der Fall, wenn dieselbe Erweiterung (z. B. die Basisschlüsselverwendung) in den Referenzwerten des CA-Pools und den vordefinierten Werten der Zertifikatsvorlage definiert ist. Oder wenn eine Richtlinie Erweiterungseinschränkungen enthält, die eine bestimmte Erweiterung ausschließen, und die andere Richtlinie in ihren Referenzwerten einen Wert für diese Erweiterung definiert.

So rufen Sie die Richtlinienkonflikte auf und beheben sie:

Console

  1. Klicken Sie auf den Link Fehlerbehebung für Ausstellungsrichtlinien, der mit den Fehlermeldung erhalten. Eine Seite zur Fehlerbehebung wird angezeigt, auf der Sie die Basiswerte vergleichen können und Erweiterungseinschränkungen in der Ausstellungsrichtlinie des CA-Pools Referenzwerte und Erweiterungseinschränkungen in der Richtlinie der Zertifikatsvorlage festzulegen. Die Richtlinienkonflikte sind hervorgehoben.
  2. Rufen Sie entweder den CA-Pool oder die Zertifikatsvorlage auf, um die in Konflikt stehenden Werte zu aktualisieren und den Konflikt zu lösen.
  3. Reichen Sie den Zertifikatsantrag nach Behebung des Konflikts noch einmal ein.

Mit einer Vorlage ausgestellte Zertifikate ansehen

So rufen Sie die mit einer Zertifikatsvorlage ausgestellten Zertifikate auf:

Console

  1. Rufen Sie in der Google Cloud Console den Tab Vorlagenmanager auf.
  2. Klicken Sie auf die Zertifikatsvorlage, die Sie für die Zertifikatsausstellung verwendet haben.
  3. Klicken Sie auf der Seite Vorlagendetails auf Zertifikate. Die Liste der mit der ausgewählten Zertifikatsvorlage ausgestellten Zertifikate wird angezeigt.

Nächste Schritte