Untergeordnete Zertifizierungsstelle von einer externen Zertifizierungsstelle erstellen

Auf dieser Seite wird beschrieben, wie Sie eine untergeordnete Zertifizierungsstelle erstellen. die mit einer externen Stamm-CA verbunden ist.

Wenn Sie bereits eine Public-Key-Infrastruktur-Hierarchie (PKI) mit einem und untergeordneten Zertifizierungsstellen, können Sie dieselbe Stamm-CA beibehalten und eine untergeordnete Zertifizierungsstelle in CA Service, die mit Ihrer externen Zertifizierungsstelle verbunden ist. Root-Zertifizierungsstelle. Der Schlüssel und die Vorgänge der externen Stamm-CA bleiben außerhalb von Google Cloud. Sie können nur die externe Stamm-CA verwenden, um das untergeordnete CA-Zertifikat auszustellen zu Google Cloud. Die untergeordnete Zertifizierungsstelle wird von jeder Arbeitslast, die der externen Root-Zertifizierungsstelle vertraut. Sie können dann die untergeordnete Zertifizierungsstelle verwenden, Zertifikate, ohne zur externen Stammzertifizierungsstelle zurückzugreifen.

Hinweise

  • Prüfen Sie, ob CA Service Operation Manager installiert ist (roles/privateca.caManager) oder den CA Service-Administrator (roles/privateca.admin) IAM-Rolle. Weitere Informationen finden Sie unter Konfigurieren Sie IAM-Richtlinien.
  • Ermitteln Sie die externe Stammzertifizierungsstelle.
  • Legen Sie den Namen, das Thema, den Gültigkeitszeitraum und die Schlüsselgröße für die untergeordnete Zertifizierungsstelle fest. Weitere Informationen finden Sie unter CA-Einstellungen bestimmen.

Untergeordnete Zertifizierungsstelle von einer externen Zertifizierungsstelle erstellen

Das Erstellen einer untergeordneten Zertifizierungsstelle von einer externen Zertifizierungsstelle umfasst folgende Schritte:

  1. Erstellen Sie die untergeordnete Zertifizierungsstelle (Certificate Signing Request, CSR): Die erste Generieren Sie dann eine CSR für die untergeordnete Zertifizierungsstelle und laden Sie die CSR herunter.

  2. Von der externen Stammzertifizierungsstelle signiertes untergeordnetes CA-Zertifikat abrufen: Das zweite Schritt besteht darin, die CSR zur Signatur an die externe Stammzertifizierungsstelle zu senden. Stellen Sie sicher, dass Sie befolgen Sie die spezifischen Anweisungen der externen Root-Zertifizierungsstelle zum Einreichen von CSRs und signierte Zertifikate zu erhalten.

  3. Importieren Sie das signierte untergeordnete CA-Zertifikat in den CA-Dienst: Im letzten Schritt laden Sie die signierte PEM-Zertifikatskette mit einer der folgenden Methoden hoch: über die Google Cloud CLI oder die Google Cloud Console.

Im folgenden Abschnitt erfahren Sie, wie Sie aus einer externe Stammzertifizierungsstelle.

CSR erstellen

Console

  1. Gehen Sie zur Seite Sicherheit > Certificate Authority Service und Google Cloud Console

    Zum Certificate Authority Service

  2. Klicken Sie auf den Tab CA-Manager.

  3. Klicken Sie auf CA erstellen.

CA-Typ auswählen:

  1. Klicken Sie auf Untergeordnete Zertifizierungsstelle.
  2. Geben Sie im Feld Gültig für die Dauer ein, für die Die vom CA-Zertifikat ausgestellten Zertifikate sind gültig.
  3. Klicken Sie auf Root-Zertifizierungsstelle ist extern.
  4. Wählen Sie eine der verfügbaren Optionen für die CA-Stufe aus. Weitere Informationen Weitere Informationen finden Sie unter Vorgangsstufen auswählen.
  5. Wählen Sie unter Regionalisierung einen CA-Standort aus der Liste.
  6. Klicken Sie auf Weiter.
CA-Antragstellernamen konfigurieren
  1. Geben Sie im Feld Organisation (O) den Namen Ihres Unternehmens ein.
  2. Optional: Geben Sie im Feld Organisationseinheit (OE) das Unternehmen ein. oder Geschäftseinheit.
  3. Optional: Geben Sie im Feld Ländername einen aus zwei Buchstaben bestehenden Ländercode ein.
  4. Optional: Geben Sie im Feld Name des Bundesstaats oder der Provinz den Namen des Bundesstaats oder der Provinz ein. Ihres Bundesstaats.
  5. Optional: Geben Sie in das Feld Name des Ortsteils den Namen Ihrer Stadt ein.
  6. Geben Sie im Feld CA Common Name (CN) den Namen der Zertifizierungsstelle ein.
  7. Geben Sie im Feld Pool-ID den Namen des Zertifizierungsstellenpools ein. Sie können die Zertifizierungsstellenpool nach dem Erstellen der Zertifizierungsstelle.
  8. Klicken Sie auf Weiter.
Größe des CA-Schlüssels und Algorithmus konfigurieren
  1. Wählen Sie den Schlüsselalgorithmus aus, der Ihren Anforderungen am besten entspricht. Weitere Informationen zur Auswahl des geeigneten Schlüsselalgorithmus finden Sie unter Schlüsselalgorithmus auswählen.
  2. Klicken Sie auf Weiter.
CA-Artefakte konfigurieren

Die folgenden Schritte sind optional. Wenn Sie diese Schritte überspringen, gelten die Einstellungen.

  1. Wählen Sie aus, ob Sie eine von Google oder eine selbstverwaltete Cloud Storage-Bucket.
  2. Wenn Sie keinen selbstverwalteten Cloud Storage-Bucket auswählen, CA Service erstellt einen von Google verwalteten Bucket im selben als Zertifizierungsstelle festlegen.

  3. Wählen Sie aus, ob Sie die Veröffentlichung des Zertifikats deaktivieren möchten Sperrlisten (CRLs) und CA-Zertifikate für den Cloud Storage Bucket.
  4. Veröffentlichung von Zertifikatssperrlisten und CA-Zertifikaten in einem Cloud Storage-Bucket ist standardmäßig aktiviert. Klicken Sie auf die Ein-/Aus-Schaltflächen, um diese Einstellungen zu deaktivieren.

  5. Klicken Sie auf Weiter.
Labels hinzufügen

Die folgenden Schritte sind optional.

So fügen Sie der Zertifizierungsstelle Labels hinzu:

  1. Klicken Sie auf Element hinzufügen.
  2. Geben Sie im Feld Schlüssel 1 den Labelschlüssel ein.
  3. Geben Sie im Feld Wert 1 den Labelwert ein.
  4. Wenn Sie ein weiteres Label hinzufügen möchten, klicken Sie auf Element hinzufügen. Fügen Sie dann Schlüssel und Wert ein, wie in den Schritten 2 und 3 erwähnt.
  5. Klicken Sie auf Weiter.
Einstellungen prüfen

Prüfen Sie alle Einstellungen sorgfältig und klicken Sie dann auf Erstellen, um die Zertifizierungsstelle zu erstellen.

CSR herunterladen

  1. Wählen Sie auf der Seite Zertifizierungsstelle die Zertifizierungsstelle aus, die Sie aktivieren möchten.
  2. Klicken Sie auf Aktivieren.
  3. Klicken Sie im Dialogfeld, das geöffnet wird, auf CSR herunterladen.

    Laden Sie die CSR der Zertifizierungsstelle herunter.

gcloud

  1. Führen Sie den folgenden Befehl aus, um einen Zertifizierungsstellenpool für die untergeordnete Zertifizierungsstelle zu erstellen. Weitere Informationen finden Sie unter CA-Pool erstellen.

    gcloud privateca pools create SUBORDINATE_POOL_ID
    

    Ersetzen Sie SUBORDINATE_POOL_ID durch den Namen des Zertifizierungsstellenpools.

  2. Führen Sie den folgenden gcloud-Befehl aus, um im erstellten Zertifizierungsstellenpool eine untergeordnete Zertifizierungsstelle zu erstellen. Mit dem Befehl gcloud wird auch eine CSR erstellt und in der Datei FILE_NAME gespeichert.

    gcloud privateca subordinates create SUBORDINATE_CA_ID \
      --pool=SUBORDINATE_POOL_ID \
      --create-csr --csr-output-file=FILE_NAME \
      --key-algorithm="ec-p256-sha256" \
      --subject="CN=Example Server TLS CA, O=Example LLC"
    

    Ersetzen Sie Folgendes:

    • SUBORDINATE_CA_ID: Die eindeutige ID der untergeordneten Zertifizierungsstelle.
    • SUBORDINATE_POOL_ID: Der Name des Zertifizierungsstellenpools.
    • FILE_NAME: Der Name der Datei, in die die PEM-codierte CSR geschrieben wird.

    Das Flag --key-algorithm verwendet den kryptografischen Algorithmus, den Sie zum Erstellen eines verwalteten Cloud HSM-Schlüssels für die Zertifizierungsstelle verwenden möchten.

    Das Flag --subject verwendet den X.501-Namen des Zertifikatsinhabers.

    Weitere Informationen zum Befehl gcloud privateca subordinates create finden Sie unter gcloud privateca subordinates create.

Die folgende Anweisung wird beim Erstellen der CSR zurückgegeben:

Created Certificate Authority [projects/my-project-pki/locations/us-west1/caPools/SUBORDINATE_POOL_ID/certificateAuthorities/SUBORDINATE_CA_ID] and saved CSR to FILE_NAME.

Führen Sie den folgenden Befehl aus, um die vollständige Liste der verfügbaren Einstellungen aufzurufen:

gcloud privateca subordinates create --help

Wenn Sie die CSR verlieren, können Sie sie mit dem folgenden Befehl noch einmal herunterladen:

gcloud privateca subordinates get-csr SUBORDINATE_CA_ID \
  --pool=SUBORDINATE_POOL_ID

Terraform

  1. Verwenden Sie die folgende Konfigurationsdatei, um einen Zertifizierungsstellenpool und eine untergeordnete Zertifizierungsstelle in diesem Zertifizierungsstellenpool zu erstellen:

    resource "google_privateca_ca_pool" "default" {
      name     = "test-ca-pool"
      location = "us-central1"
      tier     = "ENTERPRISE"
    }
    
    resource "google_privateca_certificate_authority" "sub-ca" {
      pool = google_privateca_ca_pool.default.name
      certificate_authority_id = "my-certificate-authority-sub"
      location = "us-central1"
      config {
        subject_config {
          subject {
            organization = "HashiCorp"
            common_name = "my-subordinate-authority"
          }
          subject_alt_name {
            dns_names = ["hashicorp.com"]
          }
        }
        x509_config {
          ca_options {
            is_ca = true
            # Force the sub CA to only issue leaf certs
            max_issuer_path_length = 0
          }
          key_usage {
            base_key_usage {
              cert_sign = true
              crl_sign = true
            }
            extended_key_usage {
            }
          }
        }
      }
      lifetime = "86400s"
      key_spec {
        algorithm = "RSA_PKCS1_4096_SHA256"
      }
      type = "SUBORDINATE"
    }
    
  2. Hängen Sie die folgende Konfiguration an, um die CSR abzurufen.

    data "google_privateca_certificate_authority" "sub-ca-csr" {
      location = "us-central1"
      pool = google_privateca_ca_pool.default.name
      certificate_authority_id = google_privateca_certificate_authority.sub-ca.certificate_authority_id
    }
    
    output "csr" {
      value = data.google_privateca_certificate_authority.sub-ca-csr.pem_csr
    }
    
  3. Führen Sie terraform apply aus.

CSR signieren

Übergeben Sie die generierte CSR-Datei an das Mitglied Ihrer Organisation für die Ausstellung des Zertifikats verantwortlich und bitten, es zu signieren. Die spezifischen Die Schritte hängen von der Einrichtung Ihrer Organisation ab.

Sie können mit einer einfachen Stamm-CA experimentieren, indem Sie die folgenden openssl-Befehlen:

Shell

Konfigurieren Sie die Einstellungen für die neue Stamm-CA.

cat > root.conf <<- EOM
[ req ]
distinguished_name = req_distinguished_name
x509_extensions    = v3_ca
prompt             = no
[ req_distinguished_name ]
commonName = Sample Root
[ v3_ca ]
subjectKeyIdentifier=hash
basicConstraints=critical, CA:true
EOM

Erstellen Sie die neue Stammzertifizierungsstelle.

openssl req -x509 -new -nodes -config root.conf -keyout rootCA.key \
  -days 3000 -out rootCA.crt -batch

Konfigurieren Sie die Erweiterungen, die dem neuen untergeordneten CA-Zertifikat hinzugefügt werden müssen.

cat > extensions.conf <<- EOM
basicConstraints=critical,CA:TRUE,pathlen:0
keyUsage=critical,keyCertSign,cRLSign
extendedKeyUsage=critical,serverAuth
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid
EOM

Signieren Sie die CSR der untergeordneten Zertifizierungsstelle mit diesem Stamm.

openssl x509 -req -in FILE_NAME -CA rootCA.crt -CAkey rootCA.key \
  -CAcreateserial -out subordinate.crt -days 1095 -sha256 -extfile extensions.conf

Die gesamte Zertifikatskette zu einer einzigen Datei verketten.

cat subordinate.crt > chain.crt
cat rootCA.crt >> chain.crt

Signiertes Zertifikat hochladen

So aktivieren Sie eine untergeordnete Zertifizierungsstelle mit einem signierten Zertifikat:

Console

  1. Rufen Sie die Seite Certificate Authority Service (Zertifizierungsstelle) in in der Google Cloud Console.

    Zum Certificate Authority Service

  2. Klicken Sie auf den Tab CA-Manager.

  3. Wählen Sie unter Zertifizierungsstellen die untergeordnete Zertifizierungsstelle aus, die Sie erstellt haben.

  4. Klicken Sie auf Aktivieren.

  5. Klicken Sie im daraufhin angezeigten Dialogfeld auf CSR herunterladen, um die PEM-codierte CSR-Datei, die die ausstellende Zertifizierungsstelle signieren kann.

  6. Klicken Sie auf Weiter.

  7. Klicken Sie im Feld Zertifikatskette hochladen auf Durchsuchen.

  8. Laden Sie die signierte Zertifikatsdatei mit der Erweiterung .crt hoch.

  9. Klicken Sie auf Activate (Aktivieren).

gcloud

gcloud privateca subordinates activate SUBORDINATE_CA_ID \
  --pool=SUBORDINATE_POOL_ID \
  --pem-chain ./chain.crt

Ersetzen Sie Folgendes:

  • SUBORDINATE_CA_ID: die eindeutige Kennung der untergeordneten Zertifizierungsstelle, die Sie aktivieren möchten.
  • SUBORDINATE_POOL_ID: der Name des Zertifizierungsstellenpools, der die untergeordnete Zertifizierungsstelle enthält.

Das Flag --pem-chain ist erforderlich. Dieses Flag verwendet die Datei, die die Liste der PEM-codierten Zertifikate enthält. Die Liste der Zertifikate beginnt mit dem aktuellen CA-Zertifikat und endet mit dem Root-CA-Zertifikat.

Weitere Informationen zum Befehl gcloud privateca subordinates activate finden Sie unter gcloud privateca subordinatesactivate.

Die folgende Anweisung wird zurückgegeben, wenn das signierte Zertifikat hochgeladen wird:

Activated certificate authority [SUBORDINATE_CA_ID].

Terraform

  1. Signiertes CA-Zertifikat lokal als subordinate.crt speichern.
  2. Speichern Sie die CA-Zertifikate der Signatur lokal als rootCA.crt.
  3. Entfernen Sie die im ersten Schritt erwähnte Konfiguration zum Abrufen der CSR Es wird versucht, die CSR abzurufen, was nach der Aktivierung der Zertifizierungsstelle nicht zulässig ist.
  4. Aktualisieren Sie die Konfiguration der untergeordneten Zertifizierungsstelle mit den folgenden Feldern und führen Sie sie aus terraform apply

      pem_ca_certificate     = file("subordinate.crt")
      subordinate_config {
        pem_issuer_chain {
            pem_certificates = [file("rootCA.crt")] 
        }
      }
    

    Wenn die Ausstellerkette mehr als eine Zertifizierungsstelle enthält, geben Sie den Wert so an: [file("intermediateCA.cert"), file("rootCA.crt")]

Nächste Schritte