Root-Zertifizierungsstelle erstellen
Auf dieser Seite wird beschrieben, wie Sie eine Stammzertifizierungsstelle in einem Zertifizierungsstellenpool erstellen.
Eine Stamm-Zertifizierungsstelle steht an der Spitze einer Public-Key-Infrastruktur (PKI) und ist für die Bildung des Trust Anchors der PKI verantwortlich. Damit ein Gerät, eine Software oder eine Komponente ordnungsgemäß an einer PKI teilnehmen und Zertifikate verwenden kann, muss es der PKI vertrauen. Dazu müssen Sie das Gerät, die Software oder die Komponente so konfigurieren, dass der Stamm-CA vertraut wird. Daher sind alle von der Root-Zertifizierungsstelle ausgestellten Zertifikate vertrauenswürdig.
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. - Erstellen Sie einen CA-Pool.
- Legen Sie die CA-Einstellungen fest.
Stamm-CA erstellen
Eine Stammzertifizierungsstelle hat ein selbst signiertes Zertifikat, das Sie in den Trust Stores Ihrer Clients verteilen müssen. Das Zertifikat der Stamm-CA befindet sich oben in der Zertifikatskette. Keine andere Zertifizierungsstelle kann das CA-Zertifikat widerrufen. Die CRL der Stamm-CA gilt nur für die anderen Zertifikate, die von der Stamm-CA ausgestellt wurden, nicht für sie selbst.
Sie können eine Root-CA entweder in einem vorhandenen CA-Pool oder in einem neuen CA-Pool erstellen. In der folgenden Anleitung wird ein vorhandener Pool verwendet.
So erstellen Sie eine Stammzertifizierungsstelle in einem vorhandenen CA-Pool:
Rufen Sie in der Google Cloud Console die Seite Certificate Authority Service auf.
Klicken Sie auf den Tab CA Manager.
Klicken Sie auf den Aufklapppfeil
neben CA erstellen und wählen Sie dann CA in vorhandenem CA-Pool erstellen aus.
CA-Pool auswählen
Wählen Sie einen vorhandenen CA-Pool aus der Liste aus und klicken Sie auf Weiter.
CA-Typ auswählen
- Wählen Sie unter Typ die Option Root-CA aus.
- Geben Sie im Feld Gültig bis die Dauer ein, für die die vom CA-Zertifikat ausgestellten Zertifikate gültig sein sollen.
- Wählen Sie unter Initialisierter Status den Betriebsstatus der zu erstellenden Zertifizierungsstelle 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 Country name (C) (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.
- 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.
- Wählen Sie aus, ob Sie einen von Google verwalteten oder einen vom Kunden verwalteten Cloud Storage-Bucket verwenden möchten.
- Für einen von Google verwalteten Cloud Storage-Bucket erstellt CA Service einen von Google verwalteten Bucket am selben Speicherort wie die Zertifizierungsstelle.
- Klicken Sie für einen 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 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 Fertig, um die Zertifizierungsstelle zu erstellen.
Führen Sie den folgenden Befehl aus, um eine neue Root-CA in einem vorhandenen CA-Pool zu erstellen:
gcloud privateca roots create
ROOT_CA_ID \ --location=LOCATION \ --pool=POOL_ID \ --key-algorithm=KEY_ALGORITHM \ --subject="CN=my-ca, O=Test LLC"Ersetzen Sie Folgendes:
- ROOT_CA_ID: der Name der Zertifizierungsstelle.
- LOCATION: der Standort des CA-Pools.
- POOL_ID: der Name des CA-Pools.
- KEY_ALGORITHM: Der Algorithmus, der zum Erstellen eines Cloud KMS-Schlüssels verwendet werden soll. Dieses Flag ist optional. Wenn Sie dieses Flag nicht angeben, wird der Schlüsselalgorithmus standardmäßig auf
rsa-pkcs1-4096-sha256
festgelegt. Weitere Informationen finden Sie unter --key-algorithm.
Standardmäßig wird die Zertifizierungsstelle im Status
STAGED
erstellt. Wenn Sie eine Zertifizierungsstelle standardmäßig aktivieren möchten, fügen Sie das Flag--auto-enable
hinzu.Wenn Sie einen vom Kunden verwalteten Cloud Storage-Bucket zum Veröffentlichen von CA-Zertifikaten und CRLs verwenden möchten, fügen Sie dem Befehl
--bucket bucket-name
hinzu. Ersetzen Sie bucket-name durch den Namen des Cloud Storage-Buckets.Führen Sie den folgenden Befehl aus, um eine vollständige Liste der Einstellungen aufzurufen:
gcloud privateca roots create --help
Wenn Sie eine Root-Zertifizierungsstelle mit einem Verschlüsselungsschlüssel erstellen möchten, der von Google verwaltet wird und auf Google Cloud basiert, verwenden Sie die folgende Beispielkonfiguration:
Verwenden Sie die folgende Beispielkonfiguration, um eine Root-CA mit einem selbst verwalteten Schlüssel zu erstellen:
Richten Sie zur Authentifizierung beim CA-Dienst die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Richten Sie zur Authentifizierung beim CA-Dienst die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Richten Sie zur Authentifizierung beim CA-Dienst die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Erstellen Sie eine Stamm-CA.
HTTP-Methode und URL:
POST https://privateca.googleapis.com/v1/projects/
PROJECT_ID /locations/LOCATION /caPools/POOL_ID /certificateAuthorities?certificate_authority_id=ROOT_CA_ID JSON-Text anfordern:
{ "type": "SELF_SIGNED", "lifetime": { "seconds": 315576000, "nanos": 0 }, "config": { "subject_config": { "subject": { "organization": "
ORGANIZATION_NAME ", "common_name": "COMMON_NAME " } }, "x509_config":{ "ca_options":{ "is_ca":true }, "key_usage":{ "base_key_usage":{ "cert_sign":true, "crl_sign":true } } } }, "key_spec":{ "algorithm":"RSA_PKCS1_4096_SHA256" } }Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://privateca.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /caPools/POOL_ID /certificateAuthorities?certificate_authority_id=ROOT_CA_ID "PowerShell (Windows)
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://privateca.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /caPools/POOL_ID /certificateAuthorities?certificate_authority_id=ROOT_CA_ID " | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/
PROJECT_ID /locations/LOCATION /operations/operation-UUID ", "metadata": {...}, "done": false }Fragen Sie den Vorgang ab, bis er abgeschlossen ist.
HTTP-Methode und URL:
GET https://privateca.googleapis.com/v1/projects/
PROJECT_ID /locations/LOCATION /operations/operation-UUID Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Führen Sie folgenden Befehl aus:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://privateca.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /operations/operation-UUID "PowerShell (Windows)
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://privateca.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /operations/operation-UUID " | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/
PROJECT_ID /locations/LOCATION /operations/operation-UUID ", "metadata": {...}, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.security.privateca.v1.CertificateAuthority", "name": "...", } }
Nachdem Sie überprüft haben, dass die Zertifizierungsstelle wie erwartet funktioniert, können Sie sie aktivieren, damit sie loadbalancede Zertifikate für den CA-Pool ausstellen kann.
Stamm-CA aktivieren
Führen Sie den folgenden gcloud
-Befehl aus, um eine Stamm-CA zu aktivieren:
gcloud privateca roots enable ROOT_CA_ID --location=LOCATION --pool=POOL_ID
Ersetzen Sie Folgendes:
- ROOT_CA_ID: der Name der Zertifizierungsstelle.
- LOCATION: der Standort des CA-Pools. Eine vollständige Liste der Standorte finden Sie unter Standorte.
- POOL_ID: der Name des CA-Pools.
Wenn Sie eine Stamm-CA mit Terraform erstellen, wird sie beim Erstellen aktiviert. Wenn Sie eine Stamm-CA im Status STAGED
erstellen möchten, legen Sie beim Erstellen der CA das Feld desired_state
auf STAGED
fest.
Sie können das Feld desired_state
nach dem Erstellen der Zertifizierungsstelle auf ENABLED
oder DISABLED
festlegen.
Richten Sie zur Authentifizierung beim CA-Dienst die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Richten Sie zur Authentifizierung beim CA-Dienst die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Richten Sie zur Authentifizierung beim CA-Dienst die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Aktivieren Sie die CA, damit sie Zertifikate aus dem CA-Pool ausstellen kann.
HTTP-Methode und URL:
POST https://privateca.googleapis.com/v1/projects/
PROJECT_ID /locations/LOCATION /caPools/POOL_ID /certificateAuthorities/ROOT_CA_ID :enableWenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Führen Sie folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://privateca.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /caPools/POOL_ID /certificateAuthorities/ROOT_CA_ID :enable"PowerShell (Windows)
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://privateca.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /caPools/POOL_ID /certificateAuthorities/ROOT_CA_ID :enable" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/
PROJECT_ID /locations/LOCATION /operations/operation-UUID ", "metadata": {...}, "done": false }Fragen Sie den Vorgang ab, bis er abgeschlossen ist.
HTTP-Methode und URL:
GET https://privateca.googleapis.com/v1/projects/
PROJECT_ID /locations/LOCATION /operations/operation-UUID Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Führen Sie folgenden Befehl aus:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://privateca.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /operations/operation-UUID "PowerShell (Windows)
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://privateca.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /operations/operation-UUID " | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/
PROJECT_ID /locations/LOCATION /operations/operation-UUID ", "metadata": {...}, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.security.privateca.v1.CertificateAuthority", "name": "...", } }
CA testen
Wenn Sie prüfen möchten, ob eine Zertifizierungsstelle Zertifikate ausstellen kann, fordern Sie ein Zertifikat vom zugehörigen Zertifizierungsstellenpool an und geben Sie mit dem Flag --ca
den Namen der Zertifizierungsstelle an, die Sie testen möchten.
Sie können mit den folgenden Methoden ein Zertifikat von einem CA-Pool anfordern:
- Lassen Sie einen privaten oder öffentlichen Schlüssel vom CA-Dienst erstellen.
- Generieren Sie einen eigenen privaten oder öffentlichen Schlüssel und reichen Sie eine CSR-Anfrage (Certificate Signing Request) ein.
Es ist einfacher, ein Zertifikat von einer Zertifizierungsstelle in einem CA-Pool anzufordern, wenn Sie einen automatisch generierten privaten oder öffentlichen Schlüssel verwenden. Dieser Abschnitt enthält Informationen zum Testen einer Zertifizierungsstelle mit dieser Methode.
Wenn Sie einen automatisch generierten privaten oder öffentlichen Schlüssel verwenden möchten, um ein Zertifikat von einer Zertifizierungsstelle in einem CA-Pool anzufordern, führen Sie den folgenden gcloud
-Befehl aus:
gcloud privateca certificates create \
--issuer-pool=POOL_ID \
--issuer-location=ISSUER_LOCATION \
--ca=ROOT_CA_ID \
--generate-key \
--key-output-file=KEY_FILENAME \
--cert-output-file=CERT_FILENAME \
--dns-san=DNS_NAME
Ersetzen Sie Folgendes:
- POOL_ID: der Name des CA-Pools.
- ISSUER_LOCATION: den Standort der Zertifizierungsstelle (Certificate Authority, CA), die das digitale Zertifikat ausgestellt hat.
- ROOT_CA_ID: die eindeutige Kennung der CA, die Sie testen möchten.
- KEY_FILENAME: die Datei, in die der generierte Schlüssel im PEM-Format geschrieben wird.
- CERT_FILENAME: Datei, in die die resultierende PEM-codierte Zertifikatskettendatei geschrieben wird. Die Reihenfolge der Zertifikatskette ist vom Blatt zum Stamm.
DNS_NAME: Eine oder mehrere durch Kommas getrennte alternative DNS-Inhabernamen (Subject Alternative Names, SANs).
Mit dem Flag
--generate-key
wird auf Ihrem Computer ein neuer privater RSA-2048-Schlüssel generiert.
Informationen zum Anfordern eines Zertifikats von einer Zertifizierungsstelle in einem CA-Pool mithilfe einer Zertifikatsignierungsanfrage (Certificate Signing Request, CSR) oder weitere Informationen zum Anfordern von Zertifikaten finden Sie unter Zertifikat anfordern und ausgestellte Zertifikate ansehen.
Zertifizierungsstellen klonen
Führen Sie den folgenden Befehl aus, um eine vorhandene Zertifizierungsstelle zu klonen, um diese zu erneuern, oder um eine neue Zertifizierungsstelle mit derselben Konfiguration zu erstellen:
gcloud privateca roots create NEW_CA_ID \
--location=LOCATION \
--pool=POOL_ID \
--from-ca=EXISTING_CA_ID \
--key-algorithm "ec-p384-sha384"
Ersetzen Sie Folgendes:
- NEW_CA_ID: die eindeutige Kennung der neuen Zertifizierungsstelle.
- LOCATION: der Standort des CA-Pools.
- POOL_ID: der Name des CA-Pools, in dem Sie die neue Zertifizierungsstelle erstellen möchten.
- EXISTING_CA_ID: die ID der Quell-Zertifizierungsstelle oder die voll qualifizierte Kennzeichnung für die Quell-Zertifizierungsstelle.
Das Flag --from-ca
wird für die Erstellung von Stamm- und untergeordneten Zertifizierungsstellen unterstützt. Die vorhandene Zertifizierungsstelle muss sich im selben CA-Pool wie die neue Zertifizierungsstelle befinden.
Mit dem Flag --key-algorithm
wird die gesamte CA-Konfiguration aus der vorhandenen Zertifizierungsstelle kopiert (mit Ausnahme der Cloud KMS-Schlüsselversion und des Cloud Storage-Buckets).
Sie können jedoch weiterhin alle Konfigurationswerte in der neuen Zertifizierungsstelle überschreiben, indem Sie das entsprechende Flag explizit angeben. Sie können beispielsweise weiterhin `--subject SUBJECT angeben, um ein neues Betrefffeld zu verwenden.
Wenn Sie das Flag --key-algorithm
weglassen, wird der Algorithmus standardmäßig auf Folgendes festgelegt:
rsa-pkcs1-4096-sha256
für Stamm-CAs.rsa-pkcs1-2048-sha256
für untergeordnete Zertifizierungsstellen.
Weitere Informationen zu diesem gcloud
-Befehl finden Sie unter gcloud privateca roots create.
Nächste Schritte
- Weitere Informationen zum Erstellen einer untergeordneten Zertifizierungsstelle
- Weitere Informationen zum Anfordern von Zertifikaten
- Informationen zu Vorlagen und Richtlinien für die Ausstellung