Zertifikat mit einer Zertifikatsvorlage anfordern

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

Mit Zertifikatvorlagen können Sie die Ausstellung von Zertifikaten mithilfe von detaillierten Richtlinien steuern. Mithilfe von Zertifikatsvorlagen können Sie beispielsweise die Ausstellung von Server-TLS-Zertifikaten für alle CA-Pools in Ihrer Organisation standardisieren. Sie können auch Zertifikatvorlagen verwenden, um Richtlinien auf einer detaillierteren Ebene anzuwenden, z. B. auf bestimmte Nutzer. Das ist hilfreich, wenn Sie die Arten von Zertifikaten einschränken möchten, die von verschiedenen Personen ausgestellt werden können. Sie können auch Vorlagen für gängige Ausstellungsszenarien wiederverwenden.

Hinweise

  1. Umgebung für den CA-Dienst vorbereiten

  2. Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „Nutzer der CA Service-Zertifikatsvorlage“ (roles/privateca.templateUser) für die Zertifikatsvorlage zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Ausstellen von Zertifikaten mit 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 an ein 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 Vorlage ein Zertifikat generiert werden kann. Die Zertifikatsausstellung schlägt fehl, wenn ein Konflikt zwischen den Ausstellungsrichtlinien des Zertifizierungsstellenpools und den Richtlinien der Zertifikatsvorlage besteht. 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 Template Manager.

  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. 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 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 Antrag auf das Testzertifikat noch einmal ein.

Zertifikate mit einer Zertifikatsvorlage ausstellen

So stellen Sie ein signiertes Zertifikat mit einer Zertifikatsvorlage aus:

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

    Zum Certificate Authority Service

  2. Klicken Sie auf den Tab Template Manager.

  3. Klicken Sie auf der Seite Zertifikatvorlagen auf die gewünschte Zertifikatvorlage. 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 mit einer 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 anzeigen und dann auf Anzeigen.

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.

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 für die Ausstellung dieses Zertifikats verwenden möchten. Die angegebene Vorlage muss sich am selben Speicherort wie der ausstellende CA-Pool befinden. Weitere Informationen finden Sie in den Beispielen zum Generieren von Test-DNS-Zertifikaten und zum Generieren von Produktionszertifikaten.

/**
 * 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 einreichen können.

So teilen Sie den Link zu einem Formular zum Anfordern eines Zertifikats mit anderen Personen in Ihrer Organisation, damit diese ein Zertifikat mit denselben Parametern anfordern können:

Console
  1. Rufen Sie in der Google Cloud Console den Tab CA Pool Manager auf und klicken Sie auf Link zum Teilen des Antragsformulars.
  2. Wählen Sie im Bereich Freigabelink für Anfrageformular den CA-Pool und die Zertifikatsvorlage aus, die Sie für die Erstellung der Anfrage ausgewählt 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 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