Untergeordnete Zertifizierungsstelle von 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 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 die externe Stammzertifizierungsstelle nur verwenden, um das Zertifikat der untergeordneten Zertifizierungsstelle für Google Cloud auszustellen. Die untergeordnete Zertifizierungsstelle wird von jeder Arbeitslast, die der externen Root-Zertifizierungsstelle vertraut. Sie können dann die untergeordnete Zertifizierungsstelle verwenden, ohne zur externen Stammzertifizierungsstelle zurückzugreifen.
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 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 aus einer externen Zertifizierungsstelle erstellen
So erstellen Sie eine untergeordnete Zertifizierungsstelle aus einer externen Zertifizierungsstelle:
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.
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 Root-CA zum Einreichen von CSRs und zum Abrufen signierter Zertifikate.
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
Gehen Sie zur Seite Sicherheit > Certificate Authority Service und Google Cloud Console
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 vom CA-Zertifikat ausgestellten Zertifikate sind gültig.
- Klicken Sie auf Root-Zertifizierungsstelle ist extern.
- Wählen Sie eine der verfügbaren Optionen für die CA-Stufe aus. Weitere Informationen Weitere Informationen finden Sie unter Vorgangsstufen auswählen.
- Wählen Sie unter Regionalisierung einen CA-Standort aus der Liste.
- Klicken Sie auf Weiter.
- Geben Sie im Feld Organisation (O) den Namen Ihres Unternehmens ein.
- Optional: Geben Sie im Feld Organisationseinheit (OE) das Unternehmen ein. oder Geschäftseinheit.
- Optional: Geben Sie im Feld Ländername einen zweistelligen Ländercode ein.
- Optional: Geben Sie im Feld Name des Bundesstaats oder der Provinz den Namen des Bundesstaats oder der Provinz ein. Ihres Bundesstaats.
- Optional: Geben Sie in das Feld Name des Ortsteils den Namen Ihrer Stadt ein.
- Geben Sie im Feld CA Common Name (CN) den Namen der Zertifizierungsstelle ein.
- Geben Sie im Feld Pool-ID den Namen des Zertifizierungsstellenpools ein. Sie können den Parameter Zertifizierungsstellenpool nach dem Erstellen der Zertifizierungsstelle.
- Klicken Sie auf Weiter.
- Wählen Sie den Algorithmus aus, der Ihren Anforderungen am besten entspricht. Weitere 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, gelten die Einstellungen.
- 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 Sie die Veröffentlichung des Zertifikats deaktivieren möchten Sperrlisten (CRLs) und CA-Zertifikate für den Cloud Storage Bucket.
- Klicken Sie auf Weiter.
Wenn Sie keinen selbstverwalteten Cloud Storage-Bucket auswählen, CA Service erstellt einen von Google verwalteten Bucket im selben als Zertifizierungsstelle festlegen.
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.
Die folgenden Schritte sind optional.
So fügen Sie der Zertifizierungsstelle 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 Schlüssel und Wert ein, wie in den Schritten 2 und 3 erwähnt.
- 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 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.
Führen Sie den folgenden
gcloud
-Befehl aus, um im erstellten Zertifizierungsstellenpool eine untergeordnete Zertifizierungsstelle zu erstellen. Mit dem Befehlgcloud
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.
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.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 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 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" }
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 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
Rufen Sie die Seite Certificate Authority Service (Zertifizierungsstelle) in in der Google Cloud Console.
Klicken Sie auf den Tab CA-Manager.
Wählen Sie unter Zertifizierungsstellen die untergeordnete Zertifizierungsstelle aus, die Sie erstellt haben.
Klicken Sie auf
Aktivieren.Klicken Sie im daraufhin angezeigten Dialogfeld auf CSR herunterladen, um die PEM-codierte CSR-Datei, die die ausstellende Zertifizierungsstelle signieren kann.
Klicken Sie auf Weiter.
Klicken Sie im Feld Zertifikatskette 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 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 Zertifikat der Zertifizierungsstelle und endet mit dem Zertifikat der Stammzertifizierungsstelle.
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
- Signiertes CA-Zertifikat lokal als
subordinate.crt
speichern. - Speichern Sie die CA-Zertifikate der Signatur lokal als
rootCA.crt
. - 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.
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")]