Untergeordnete Zertifizierungsstelle aus einer externen Zertifizierungsstelle erstellen
Auf dieser Seite wird beschrieben, wie Sie eine untergeordnete Zertifizierungsstelle erstellen, die mit einer externen Stammzertifizierungsstelle verkettet ist.
Wenn Sie eine vorhandene Public-Key-Infrastruktur (PKI) mit einer Stammzertifizierungsstelle und untergeordneten Zertifizierungsstellen haben, können Sie dieselbe Stammzertifizierungsstelle beibehalten und eine untergeordnete Zertifizierungsstelle in CA Service erstellen, die mit Ihrer externen Stammzertifizierungsstelle verkettet ist. Der Schlüssel und die Vorgänge der externen Stammzertifizierungsstelle bleiben außerhalb von Google Cloud. Sie können die externe Stammzertifizierungsstelle nur verwenden, um das Zertifikat der untergeordneten Zertifizierungsstelle für auszustellen Google Cloud. Die untergeordnete Zertifizierungsstelle wird sofort von jeder Arbeitslast als vertrauenswürdig eingestuft, die der externen Stammzertifizierungsstelle vertraut. Sie können dann die untergeordnete Zertifizierungsstelle verwenden, um Zertifikate auszustellen, ohne zur Laufzeit auf die externe Stammzertifizierungsstelle zurückgreifen zu müssen.
Hinweis
- Sie benötigen die IAM-Rolle „CA Service Operation Manager“ (
roles/privateca.caManager) oder „CA Service Admin“ (roles/privateca.admin). Weitere Informationen finden Sie unter IAM Richtlinien konfigurieren. - Identifizieren Sie die externe Stammzertifizierungsstelle.
- Definieren Sie den Namen, den Antragsteller, den Gültigkeitszeitraum und die Schlüsselgröße für die untergeordnete Zertifizierungsstelle. Weitere Informationen finden Sie unter CA Einstellungen festlegen.
Untergeordnete Zertifizierungsstelle aus einer externen Zertifizierungsstelle erstellen
So erstellen Sie eine untergeordnete Zertifizierungsstelle aus einer externen Zertifizierungsstelle:
Anfrage für das Signieren des Zertifikats (Certificate Signing Request, CSR) für die untergeordnete Zertifizierungsstelle generieren: Im ersten Schritt generieren Sie eine CSR für die untergeordnete Zertifizierungsstelle und laden sie dann herunter.
Zertifikat der untergeordneten Zertifizierungsstelle von der externen Stammzertifizierungsstelle signieren lassen: Im zweiten Schritt senden Sie die CSR zur Signierung an die externe Stammzertifizierungsstelle. Beachten Sie die spezifischen Anweisungen der externen Stammzertifizierungsstelle zum Senden von CSRs und zum Abrufen signierter Zertifikate.
Signiertes Zertifikat der untergeordneten Zertifizierungsstelle in CA Service importieren: Im letzten Schritt laden Sie die signierte PEM Zertifikatskette entweder mit der Google Cloud CLI oder der Google Cloud Console hoch.
Im folgenden Abschnitt wird beschrieben, wie Sie eine untergeordnete Zertifizierungsstelle aus einer externen Stammzertifizierungsstelle erstellen.
CSR erstellen
Console
Rufen Sie in der Google Cloud Console die Seite Certificate Authority Service auf.
Klicken Sie auf den Tab CA-Manager.
Klicken Sie auf CA erstellen.
CA-Typ auswählen:
- Klicken Sie auf Untergeordnete Zertifizierungsstelle.
- Geben Sie im Feld Gültig für die Dauer ein, für die die von der untergeordneten Zertifizierungsstelle ausgestellten Zertifikate gültig sein sollen.
- Klicken Sie auf Stammzertifizierungsstelle ist extern.
- Wählen Sie eine der verfügbaren Optionen für die Ebene der Zertifizierungsstelle aus. Weitere Informationen finden Sie unter Betriebsebenen auswählen.
- Wählen Sie unter Regionalisierung einen CA-Standort aus der Liste aus.
- Klicken Sie auf Weiter.
- Geben Sie im Feld Organisation (O) den Namen Ihres Unternehmens ein.
- Optional: Geben Sie im Feld Organisationseinheit (OU) die Unterabteilung oder Geschäftseinheit des Unternehmens ein.
- Optional: Geben Sie im Feld Ländername (C) einen aus zwei Buchstaben bestehenden Ländercode ein.
- Optional: Geben Sie im Feld Name des Bundesstaats oder der Provinz den Namen Ihres Bundesstaats ein.
- Optional: Geben Sie im Feld Ortsname den Namen Ihrer Stadt ein.
- Geben Sie im Feld Allgemeiner Name der Zertifizierungsstelle (CN) den Namen der Zertifizierungsstelle ein.
- Klicken Sie auf Weiter.
- Wählen Sie den Schlüsselalgorithmus aus, der Ihren Anforderungen am besten entspricht. Weitere Informationen zu den Optionen für Signaturschlüssel finden Sie unter CA-Signaturschlüssel konfigurieren.
- Wenn Sie einen vom Kunden verwalteten Signaturschlüssel verwenden möchten, wählen Sie Vom Kunden verwalteter Schlüssel aus und geben Sie die Cloud Key Management Service-Version des kryptografischen Schlüssels an.
- Klicken Sie auf Weiter.
- Wählen Sie aus, ob Sie einen von Google verwalteten oder einen vom Kunden verwalteten Cloud Storage-Bucket verwenden möchten.
- Bei einem von Google verwalteten Cloud Storage-Bucket erstellt CA Service einen von Google verwalteten Bucket am selben Standort wie die Zertifizierungsstelle.
- Klicken Sie bei einem vom Kunden verwalteten Cloud Storage-Bucket auf „Durchsuchen“ und wählen Sie einen der vorhandenen Cloud Storage-Buckets aus.
- Klicken Sie auf Weiter.
Die folgenden Schritte sind optional.
So fügen Sie der Zertifizierungsstelle Labels hinzu:
- Klicken Sie auf „Hinzufügen“ Element hinzufügen.
- Geben Sie im Feld Schlüssel 1 den Labelschlüssel ein.
- Geben Sie im Feld Wert 1 den Labelwert ein.
- Wenn Sie ein weiteres Label hinzufügen möchten, klicken Sie auf „Hinzufügen“ Element hinzufügen. Fügen Sie dann den Labelschlüssel und den Labelwert wie in Schritt 2 und 3 beschrieben hinzu.
- Klicken Sie auf Weiter.
Prüfen Sie alle Einstellungen sorgfältig und klicken Sie dann auf Fertig, um die Zertifizierungsstelle zu erstellen.
CSR herunterladen
- Wählen Sie auf der Seite Zertifizierungsstelle die Zertifizierungsstelle aus, die Sie aktivieren möchten.
- Klicken Sie auf „Aktivieren“ Aktivieren.
Klicken Sie im daraufhin geöffneten Dialogfeld auf „CSR herunterladen“.
gcloud
Führen Sie den folgenden Befehl aus, um einen CA-Pool für die untergeordnete Zertifizierungsstelle zu erstellen. Weitere Informationen finden Sie unter CA -Pool erstellen.
gcloud privateca pools create SUBORDINATE_POOL_ID --location=LOCATIONErsetzen Sie Folgendes:
- SUBORDINATE_POOL_ID: der Name des CA-Pools.
- LOCATION: der Standort des CA-Pools.
Führen Sie den folgenden
gcloud-Befehl aus, um eine untergeordnete Zertifizierungsstelle im erstellten CA-Pool zu erstellen. Mit demgcloudBefehl wird auch eine CSR erstellt und in der FILE_NAME Datei gespeichert.gcloud privateca subordinates create SUBORDINATE_CA_ID \ --pool=SUBORDINATE_POOL_ID \ --location=LOCATION \ --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 Kennung der untergeordneten Zertifizierungsstelle.
- SUBORDINATE_POOL_ID: der Name des CA-Pools.
- LOCATION: der Standort des CA-Pools.
- FILE_NAME: der Name der Datei, in die die PEM-codierte CSR geschrieben wird.
Das Flag
--key-algorithmgibt den kryptografischen Algorithmus an, den Sie zum Erstellen eines verwalteten Cloud HSM-Schlüssels für die Zertifizierungsstelle verwenden möchten.Das Flag
--subjectgibt den X.501-Namen des Zertifikatantragstellers an.Weitere Informationen zum
gcloud privateca subordinates createBefehl finden Sie unter gcloud privateca subordinates create.Führen Sie den folgenden Befehl aus, um eine untergeordnete Zertifizierungsstelle mit einem vom Kunden verwalteten Signaturschlüssel zu erstellen:
gcloud privateca subordinates create SUBORDINATE_CA_ID \ --pool=SUBORDINATE_POOL_ID \ --location=LOCATION \ --create-csr --csr-output-file=FILE_NAME \ --kms-key-version=KMS_KEY_VERSION \ --subject="CN=Example Server TLS CA, O=Example LLC"Ersetzen Sie Folgendes:
- SUBORDINATE_CA_ID: die eindeutige Kennung der untergeordneten Zertifizierungsstelle.
- SUBORDINATE_POOL_ID: der Name des CA-Pools.
- LOCATION: der Standort des CA-Pools.
- FILE_NAME: der Name der Datei, in die die PEM-codierte CSR geschrieben wird.
- KMS_KEY_VERSION: die vollständige Ressourcen-ID einer vom Kunden verwalteten Cloud KMS-Version des kryptografischen Schlüssels, die als Signaturschlüssel verwendet werden soll.
Weitere Informationen zu den Optionen für Signaturschlüssel und zum Vorbereiten eines vom Kunden verwalteten Signaturschlüssels finden Sie unter CA-Signaturschlüssel konfigurieren.
Die folgende Anweisung wird zurückgegeben, wenn die CSR erstellt wird:
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 \
--location=LOCATION
Terraform
Verwenden Sie die folgende Konfigurationsdatei, um einen CA-Pool und eine untergeordnete Zertifizierungsstelle in diesem CA-Pool 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" }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 }Führen Sie
terraform applyaus.
CSR signieren
Geben Sie die generierte CSR-Datei an das Mitglied Ihrer Organisation weiter, das für die Ausstellung von Zertifikaten zuständig ist, und bitten Sie es, sie zu signieren. Die genauen Schritte hängen von der Einrichtung Ihrer Organisation ab.
Mit den folgenden openssl-Befehlen können Sie eine einfache Stammzertifizierungsstelle testen:
Shell
Konfigurieren Sie die Einstellungen für die neue Stammzertifizierungsstelle.
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 Zertifikat der untergeordneten Zertifizierungsstelle 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 dieser Stammzertifizierungsstelle.
openssl x509 -req -in FILE_NAME -CA rootCA.crt -CAkey rootCA.key \
-CAcreateserial -out subordinate.crt -days 1095 -sha256 -extfile extensions.conf
Verketten Sie die gesamte Zertifikatskette in einer einzigen Datei.
cat subordinate.crt > chain.crt
cat rootCA.crt >> chain.crt
Signiertes Zertifikat hochladen
So aktivieren Sie eine untergeordnete Zertifizierungsstelle mit einem signierten Zertifikat:
Console
Rufen Sie in der Google Cloud Console die Certificate Authority Service Seite auf.
Klicken Sie auf den Tab CA-Manager.
Wählen Sie unter Zertifizierungsstellen die untergeordnete Zertifizierungsstelle aus, die Sie erstellt haben.
Klicken Sie auf „Aktivieren“ Aktivieren.
Klicken Sie im daraufhin geöffneten Dialogfeld auf CSR herunterladen , um die PEM-codierte CSR-Datei herunterzuladen, die von der ausstellenden Zertifizierungsstelle signiert werden kann.
Klicken Sie auf Weiter.
Klicken Sie im Feld Zertifikatskette hochladen auf Durchsuchen.
Laden Sie die signierte Zertifikatsdatei mit der Erweiterung
.crthoch.Klicken Sie auf Aktivieren.
gcloud
gcloud privateca subordinates activate SUBORDINATE_CA_ID \
--pool=SUBORDINATE_POOL_ID \
--location=LOCATION \
--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 CA-Pools, der die untergeordnete Zertifizierungsstelle enthält.
- LOCATION: der Standort des CA-Pools. Die vollständige Liste der Standorte finden Sie unter Standorte.
Das Flag --pem-chain ist erforderlich. Dieses Flag gibt eine Datei an, die die Liste der PEM-codierten Zertifikate enthält. Die Liste der Zertifikate beginnt mit dem aktuellen Zertifikat der Zertifizierungsstelle und endet mit dem Zertifikat der Stammzertifizierungsstelle.
Weitere Informationen zum Befehl gcloud privateca subordinates activate finden Sie unter gcloud privateca subordinates activate.
Die folgende Anweisung wird zurückgegeben, wenn das signierte Zertifikat hochgeladen wird:
Activated certificate authority [SUBORDINATE_CA_ID].
Terraform
- Speichern Sie das signierte Zertifikat der Zertifizierungsstelle lokal als
subordinate.crt. - Speichern Sie die Zertifikate der signierenden Zertifizierungsstelle lokal als
rootCA.crt. - Entfernen Sie die Konfiguration zum Abrufen der CSR, die im ersten Schritt erwähnt wurde, da nach der Aktivierung der Zertifizierungsstelle keine CSR mehr abgerufen werden darf.
Aktualisieren Sie die Konfiguration der untergeordneten Zertifizierungsstelle mit den folgenden Feldern und führen Sie
terraform applyaus.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 als
[file("intermediateCA.cert"), file("rootCA.crt")] an.
Nächste Schritte
- Informationen zum Anfordern von Zertifikaten.
- Informationen zu Vorlagen und Ausstellungs richtlinien.