Zertifikat mit einer Zertifikatsvorlage anfordern

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

Mit Zertifikatsvorlagen können Sie detaillierte Richtlinienkontrollen für die Ausstellung von Zertifikaten implementieren. Beispielsweise können Sie Zertifikatsvorlagen verwenden, um die Ausstellung von Server-TLS-Zertifikaten über CA-Pools in Ihrer Organisation zu standardisieren. Sie können auch Zertifikatsvorlagen verwenden, um Richtlinien detaillierter anzuwenden, z. B. für bestimmte Nutzer. Dies ist nützlich, wenn Sie die Arten von Zertifikaten einschränken müssen, die verschiedene Personen ausstellen können. Sie können Vorlagen auch für gängige Ausstellungsszenarien wiederverwenden.

Hinweise

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

  2. Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „CA Service Certificate Template User“ (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 CA Service finden Sie unter Zugriffssteuerung mit IAM.

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

Zertifikatsausstellung testen

Bevor Sie ein signiertes Zertifikat über eine Zertifikatsvorlage anfordern, sollten Sie prüfen, ob damit ein Zertifikat generiert 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 identifizieren und lösen. Testzertifikate sind nicht PEM-codiert, nicht signiert und es fallen keine Kosten für die Erstellung an.

So testen Sie die Zertifikatsausstellung mithilfe 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 zum Erstellen einer Testanfrage auf Zertifikat erstellen und dann auf Zertifikatsausstellung testen. Das Formular zur Zertifikatsanfrage wird angezeigt.

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

    • Region: Standort 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 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 dem Erstellen des Zertifikats auf Ansehen. Das Test- oder Beispielzertifikat wird auf derselben Seite in einem separaten Bereich angezeigt.

  8. Wenn die Zertifikatsausstellung aufgrund von Konflikten fehlschlägt, lösen Sie die Konflikte und senden Sie die Testzertifikatsanfrage noch einmal.

Zertifikate mit einer Zertifikatsvorlage ausstellen

So stellen Sie ein signiertes Zertifikat mithilfe 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 Zertifizierungsstellenpools übereinstimmen, den Sie verwenden möchten.

  6. Wählen Sie den Zertifizierungsstellenpool aus.

  7. Informationen zum Generieren eines Zertifikats mit einer Anfrage zur Signierung des Zertifikats (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 erstellt wurde, wird eine Meldung angezeigt.
  2. Zum Aufrufen des generierten Zertifikats 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.

gcloud

Wenn Sie ein Zertifikat mithilfe 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 für die Ausstellung 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 Test-DNS-Zertifikaten 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.

Wenn Sie einen Link zu einem Zertifikatsanfrageformular für andere Personen in Ihrer Organisation freigeben möchten, damit diese ein Zertifikat mit denselben Parametern anfordern können, gehen Sie so vor:

Console

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

Richtlinienkonflikte beheben

Zertifikatanfragen schlagen mit einem Fehler über ein ungültiges Argument fehl, wenn ein Konflikt zwischen der Ausstellungsrichtlinie des Zertifizierungsstellenpools und der Zertifikatsvorlage besteht. Wenn beispielsweise dieselbe Erweiterung (z. B. die Basisschlüsselverwendung) in den Basiswerten des Zertifizierungsstellenpools und in den vordefinierten Werten der Zertifikatsvorlage definiert ist. Oder wenn eine Richtlinie Erweiterungseinschränkungen hat, die eine bestimmte Erweiterung ausschließt, und die andere Richtlinie einen Wert für diese Erweiterung in ihren Referenzwerten definiert.

So können Sie sich die Richtlinienkonflikte ansehen und sie beheben:

Console

  1. Klicken Sie auf den Link Fehlerbehebung für Ausstellungsrichtlinien, der mit der Fehlermeldung angezeigt wird. Es wird eine Seite zur Fehlerbehebung angezeigt, auf der Sie die Referenzwerte und Erweiterungseinschränkungen in der Ausstellungsrichtlinie des Zertifizierungsstellenpools mit den Referenzwerten und Erweiterungseinschränkungen in der Richtlinie der Zertifikatsvorlage vergleichen können. Richtlinienkonflikte sind hervorgehoben.
  2. Rufen Sie entweder den Zertifizierungsstellenpool oder die Zertifikatsvorlage auf, um die in Konflikt stehenden Werte zu aktualisieren und den Konflikt zu beheben.
  3. Nachdem der Konflikt gelöst wurde, reichen Sie die Zertifikatsanfrage noch einmal ein.

Mit einer Vorlage ausgestellte Zertifikate ansehen

So rufen Sie die Zertifikate auf, 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