Zertifikat mit einer Zertifikatsvorlage anfordern

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

Mit Zertifikatvorlagen können Sie detaillierte Richtlinienkontrollen für die Zertifikatsausstellung implementieren. Sie können beispielsweise Zertifizierungsvorlagen verwenden, um die Ausstellung von Server-TLS-Zertifikaten in allen CA-Pools in Ihrer Organisation zu 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üssen, die verschiedene Personen ausstellen können. Sie können auch Vorlagen für gängige Ausstellungsszenarien wiederverwenden.

Hinweise

  1. Umgebung für CA Service vorbereiten

  2. Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „Nutzer der CA Service-Zertifikatsvorlage“ (roles/privateca.templateUser) für die Zertifikatsvorlage zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausstellen von Zertifikaten mithilfe einer Zertifikatsvorlage benötigen.

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

    Informationen zum Zuweisen einer IAM-Rolle zu einem Hauptkonto finden Sie unter Einzelne Rolle zuweisen.

Zertifikatsausstellung testen

Bevor Sie eine Zertifikatsvorlage verwenden, um ein signiertes Zertifikat anzufordern, sollten Sie prüfen, ob mit der Zertifikatsvorlage ein Zertifikat generiert werden kann. Die Zertifikatsausstellung schlägt fehl, wenn ein Konflikt zwischen den Ausstellungsrichtlinien des Zertifizierungsstellenpools und den Richtlinien der Zertifikatsvorlage besteht. Durch das Testen der Ausstellung können Sie diese Konflikte proaktiv erkennen und beheben. Testzertifikate sind nicht PEM-codiert, sie sind nicht signiert und für die Generierung fallen keine Gebühren an.

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. Wenn Sie eine Testanfrage erstellen möchten, klicken Sie auf Zertifikat erstellen und dann auf Zertifikatausstellung testen. Das Zertifikatanfrageformular wird angezeigt.

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

    • Region: Standort des Zertifikats. Dieser muss mit dem Standort des CA-Pools übereinstimmen.
    • CA-Pool: Der CA-Pool, der für die Ausstellung des Zertifikats verantwortlich ist.
    • Zertifikatsvorlage: Die Vorlage, die Sie für die Zertifikatsausstellung 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 Ansehen. Das Test- oder Musterzertifikat wird auf derselben Seite in einem separaten Bereich angezeigt.

  8. Wenn die Zertifikatausstellung aufgrund von Konflikten fehlschlägt, beheben Sie die Konflikte und senden Sie die Testzertifikatanfrage noch einmal.

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 Zertifikatvorlagen auf die Zertifikatvorlage, 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 des CA-Pools übereinstimmen, den Sie verwenden möchten.

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

  7. Informationen zum Generieren eines Zertifikats mithilfe einer Anfrage zur Zertifikatssignierung (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. Wenn Sie das generierte Zertifikat aufrufen möchten, klicken Sie auf Zertifikat ansehen und dann auf Ansehen.

Optional: Signiertes Zertifikat herunterladen

  1. Klicken Sie auf Zertifikatskette herunterladen, um die PEM-codierte Zertifikatskette herunterzuladen.
  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 Zertifikatvorlage, die Sie zum Ausstellen dieses Zertifikats verwenden möchten. Die angegebene Vorlage muss sich am selben Standort wie der ausstellende CA-Pool befinden. Weitere Informationen finden Sie in den Beispielen zum 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.

Eine Zertifikatsanfrage kann fehlschlagen, wenn ein Richtlinienkonflikt zwischen der Ausstellungsrichtlinie des CA-Pools und der Zertifikatsvorlage erkannt wird. In diesem Fall müssen Sie den Richtlinienkonflikt beheben, bevor Sie den Zertifikatsantrag noch einmal senden können.

So geben Sie einen Link zu einem Zertifikatsantragsformular für andere in Ihrer Organisation frei, damit diese ein Zertifikat mit denselben Parametern anfordern können:

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 Freigabelink für Anfrageformular den CA-Pool und die Zertifikatsvorlage aus, die Sie zum Erstellen Ihrer Anfrage verwendet haben. Der Link zur Zertifikatsanfrage wird angezeigt.
  3. Kopieren Sie den Link und teilen Sie ihn nach Bedarf.

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 Template Manager 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 Zertifikate, die mit der ausgewählten Zertifikatsvorlage ausgestellt wurden, wird angezeigt.

Nächste Schritte