Untergeordnete Zertifizierungsstelle aus einer externen Zertifizierungsstelle erstellen
Auf dieser Seite wird beschrieben, wie Sie eine untergeordnete Zertifizierungsstelle erstellen, die mit einer externen Stamm-Zertifizierungsstelle verkettet ist.
Wenn Sie eine vorhandene PKI-Hierarchie (Public-Key-Infrastruktur) mit einer Stamm-CA und untergeordneten CAs haben, können Sie dieselbe Stamm-CA beibehalten und eine untergeordnete CA in CA Service erstellen, die mit Ihrer externen Stamm-CA verknüpft ist. Der Schlüssel und die Vorgänge der externen Stamm-CA bleiben außerhalb von Google Cloud. Sie können die externe Stammzertifizierungsstelle nur verwenden, um das Zertifikat der untergeordneten Zertifizierungsstelle für Google Cloud auszustellen. Die untergeordnete Zertifizierungsstelle wird sofort von allen Arbeitslasten als vertrauenswürdig eingestuft, die der externen Stammzertifizierungsstelle vertrauen. Sie können dann mit der untergeordneten Zertifizierungsstelle Zertifikate ausstellen, ohne bei der Laufzeit auf die externe Stamm-CA zurückgreifen zu müssen.
Hinweise
- Sie benötigen die IAM-Rolle „Operation Manager für CA Service“ (
roles/privateca.caManager
) oder „CA Service Admin“ (roles/privateca.admin
). Weitere Informationen finden Sie unter IAM-Richtlinien konfigurieren. - Externe Stammzertifizierungsstelle angeben
- Legen Sie den Namen, das Subjekt, den Gültigkeitszeitraum und die Schlüsselgröße für die untergeordnete Zertifizierungsstelle fest. 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:
CSR (Certificate Signing Request) für die untergeordnete Zertifizierungsstelle generieren: Als Erstes müssen Sie eine CSR für die untergeordnete Zertifizierungsstelle generieren und dann herunterladen.
Zertifikat der untergeordneten Zertifizierungsstelle von der externen Stamm-CA signieren lassen: Im zweiten Schritt reichen Sie das CSR zur Signatur bei der externen Stamm-CA ein. Folgen Sie der spezifischen Anleitung der externen Stamm-CA zum Einreichen von CSRs und zum Abrufen signierter Zertifikate.
Untergeordnetes CA-Zertifikat in den CA-Dienst importieren: Im letzten Schritt laden Sie die signierte PEM-Zertifikatskette entweder über die Google Cloud CLI oder die Google Cloud Console hoch.
Im folgenden Abschnitt wird beschrieben, wie Sie eine untergeordnete Zertifizierungsstelle aus einer externen Stamm-CA erstellen.
CSR erstellen
Console
Rufen Sie in der Google Cloud Console das Menü Sicherheit > Zertifizierungsstelle 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 bis die Dauer ein, für die die vom CA-Zertifikat ausgestellten Zertifikate gültig sein sollen.
- Klicken Sie auf Root-Zertifizierungsstelle ist extern.
- Wählen Sie eine der verfügbaren Optionen für die CA-Stufe aus. Weitere Informationen finden Sie unter Betriebsstufen 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 (OE) die Abteilung oder Geschäftseinheit des Unternehmens ein.
- Optional: Geben Sie im Feld Ländername einen zweistelligen Ländercode ein.
- Optional: Geben Sie im Feld Name des Bundeslandes den Namen Ihres Bundeslandes ein.
- Optional: Geben Sie im Feld Ortsname den Namen Ihrer Stadt ein.
- Geben Sie im Feld Allgemeiner CA-Name (CN) den Namen der Zertifizierungsstelle ein.
- Geben Sie im Feld Pool-ID den Namen des CA-Pools ein. Der CA-Pool kann nach dem Erstellen der Zertifizierungsstelle nicht mehr geändert werden.
- Klicken Sie auf Weiter.
- Wählen Sie den Algorithmus aus, der Ihren Anforderungen am besten entspricht. Informationen zur Auswahl des geeigneten Schlüsselalgorithmus finden Sie unter Schlüsselalgorithmus auswählen.
- Klicken Sie auf Weiter.
Die folgenden Schritte sind optional. Wenn Sie diese Schritte überspringen, werden die Standardeinstellungen angewendet.
- Wählen Sie aus, ob Sie einen von Google verwalteten oder einen selbst verwalteten Cloud Storage-Bucket verwenden möchten.
- Wählen Sie aus, ob die Veröffentlichung von Zertifikatssperrlisten (Certificate Revocation Lists, CRLs) und CA-Zertifikaten im Cloud Storage-Bucket deaktiviert werden soll.
- Klicken Sie auf Weiter.
Wenn Sie keinen selbst verwalteten Cloud Storage-Bucket auswählen, erstellt der CA Service einen von Google verwalteten Bucket am selben Speicherort wie die Zertifizierungsstelle.
Die Veröffentlichung von CRL und CA-Zertifikat in einem Cloud Storage-Bucket ist standardmäßig aktiviert. Wenn Sie diese Einstellungen deaktivieren möchten, klicken Sie auf die Ein-/Aus-Schaltflächen.
Die folgenden Schritte sind optional.
So fügen Sie der CA Labels hinzu:
- Klicken Sie auf 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 Element hinzufügen. Fügen Sie dann den Labelschlüssel und den Labelwert hinzu, wie in Schritt 2 und 3 beschrieben.
- Klicken Sie auf Weiter.
Prüfen Sie alle Einstellungen sorgfältig und klicken Sie dann auf Erstellen, 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.
Klicken Sie im Dialogfeld, das geöffnet wird, 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
Ersetzen Sie SUBORDINATE_POOL_ID durch den Namen des Zertifizierungsstellenpools.
Führen Sie den folgenden
gcloud
-Befehl aus, um eine untergeordnete Zertifizierungsstelle im erstellten CA-Pool zu erstellen. Mit dem Befehlgcloud
wird auch ein 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 Kennung der untergeordneten Zertifizierungsstelle.
- SUBORDINATE_POOL_ID: Der Name des CA-Pools.
- FILE_NAME: Der Name der Datei, in die die PEM-codierte CSR geschrieben wird.
Mit dem Flag
--key-algorithm
wird der kryptografische Algorithmus angegeben, den Sie zum Erstellen eines verwalteten Cloud HSM-Schlüssels für die Zertifizierungsstelle verwenden möchten.Für das Flag
--subject
wird der X.501-Name des Zertifikatsinhabers verwendet.Weitere Informationen zum Befehl
gcloud privateca subordinates create
finden Sie unter gcloud privateca subordinates create.
Beim Erstellen des CSR wird die folgende Meldung 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 eine vollständige Liste der verfügbaren Einstellungen aufzurufen:
gcloud privateca subordinates create --help
Wenn Sie das CSR verlieren, können Sie es mit dem folgenden Befehl noch einmal herunterladen:
gcloud privateca subordinates get-csr SUBORDINATE_CA_ID \
--pool=SUBORDINATE_POOL_ID
Terraform
Verwenden Sie die folgende Konfigurationsdatei, um einen CA-Pool und eine untergeordnete CA 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" }
Fügen 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 apply
aus.
CSR signieren
Übergeben Sie die generierte CSR-Datei an das Mitglied Ihrer Organisation, das für die Zertifikatsausstellung verantwortlich ist, und bitten Sie es, sie zu unterzeichnen. Die konkreten Schritte hängen von der Konfiguration Ihrer Organisation ab.
Mit den folgenden openssl
-Befehlen können Sie eine einfache Stamm-CA testen:
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 Stamm-CA.
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 das 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 zu einer einzelnen 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 Seite Certificate Authority Service auf.
Klicken Sie auf den Tab CA Manager.
Wählen Sie unter Zertifizierungsstellen die von Ihnen erstellte untergeordnete Zertifizierungsstelle aus.
Klicken Sie auf
Aktivieren.Klicken Sie im sich öffnenden Dialogfeld auf CSR herunterladen, um die PEM-codierte CSR-Datei herunterzuladen, die die ausstellende Zertifizierungsstelle signieren kann.
Klicken Sie auf Weiter.
Klicken Sie im Feld Zertifikatkette hochladen auf Durchsuchen.
Laden Sie die signierte Zertifikatsdatei mit der Erweiterung
.crt
hoch.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 CA-Pools, der die untergeordnete Zertifizierungsstelle enthält.
Das Flag --pem-chain
ist erforderlich. Dieses Flag nimmt die Datei mit der Liste der PEM-codierten Zertifikate an. 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.
Wenn das signierte Zertifikat hochgeladen wird, wird die folgende Meldung zurückgegeben:
Activated certificate authority [SUBORDINATE_CA_ID].
Terraform
- Speichern Sie das signierte CA-Zertifikat lokal als
subordinate.crt
. - Speichern Sie die CA-Zertifikate der Unterzeichner lokal als
rootCA.crt
. - Entfernen Sie die Konfiguration zum Abrufen des CSR, die im ersten Schritt erwähnt wurde, da versucht wird, den CSR abzurufen, was nach der CA-Aktivierung nicht zulässig ist.
Aktualisieren Sie die Konfiguration der untergeordneten Zertifizierungsstelle mit den folgenden Feldern und führen Sie
terraform apply
aus.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
- Weitere Informationen zum Anfordern von Zertifikaten
- Weitere Informationen zu Vorlagen und Richtlinien für die Ausstellung