Zertifikat mit einer Zertifikatsvorlage anfordern

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

Mit Zertifikatsvorlagen können Sie detaillierte Richtlinienkontrollen für die Zertifikatsausstellung implementieren. Sie können beispielsweise Zertifikatsvorlagen verwenden, um die Ausstellung von Server-TLS-Zertifikaten für alle CA-Pools in Ihrer Organisation zu standardisieren. Alternativ können Sie mit Zertifikatsvorlagen Richtlinien auf einer detaillierteren Ebene anwenden, z. B. auf bestimmte Nutzer. Das ist nützlich, wenn Sie die Arten von Zertifikaten einschränken müssen, die von verschiedenen Personen ausgestellt werden können. Sie können Vorlagen auch für häufige Ausstellungsszenarien wiederverwenden.

Hinweis

  1. Bereiten Sie Ihre Umgebung für CA Service vor.

  2. Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „CA Service-Zertifikatsvorlagennutzer“ (roles/privateca.templateUser) für die Zertifikatsvorlage zuzuweisen, 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 CA Service finden Sie unter Zugriffssteuerung mit IAM.

    Informationen zum Zuweisen einer IAM-Rolle zu einem Prinzipal, siehe 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 erstellt werden kann. Die Zertifikatsausstellung schlägt fehl, wenn ein Konflikt zwischen den Ausstellungsrichtlinien des CA-Pools 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 Erstellung fallen keine Kosten 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 Zertifikatsausstellung testen. Das Zertifikatanfrageformular wird angezeigt.

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

    • Region: Speicherort des Zertifikats. Dieser muss mit dem Speicherort 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 Zertifikats ausstellung 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 Beispielzertifikat wird auf derselben Seite in einem separaten Bereich angezeigt.

  8. Wenn die Zertifikatsausstellung aufgrund von Konflikten fehlschlägt, beheben Sie die Konflikte und senden Sie die Test zertifikatanfrage 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 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 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 Zertifikatsignierungsanfrage (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. Klicken Sie auf Zertifikat ansehen und dann auf Anzeigen , um das generierte Zertifikat zu sehen.

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 Zertifikatsvorlage 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 zum Ausstellen 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 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 Zertifikatanfrage 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 die Zertifikatanfrage noch einmal senden können.

So geben Sie einen Link zum Zertifikatanfrageformular 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-Pool-Manager auf und klicken Sie auf Freigabelink für Anfrageformular.
  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 Zertifikatanfrage wird angezeigt.
  3. Kopieren Sie den Link und geben Sie ihn nach Bedarf frei.

Mit einer Vorlage ausgestellte Zertifikate ansehen

So sehen Sie die Zertifikate, die mit einer Zertifikatsvorlage ausgestellt wurden:

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

Nächste Schritte