Diese Seite enthält eine Anleitung zum Erstellen einer privaten Zertifizierungsstelle (Certificate Authority, CA) mithilfe des Certificate Authority Service und zum Hochladen der Zertifikate in eine TrustConfig
-Ressource von Zertifikatmanager.
Sie erstellen auch die Netzwerksicherheitsressourcen, die zum Konfigurieren von gegenseitigem TLS für Application Load Balancer erforderlich sind.
Hinweise
- Lesen Sie die Übersicht zu gegenseitigem TLS.
Installieren Sie die Google Cloud CLI. Eine vollständige Übersicht über das Tool finden Sie im Leitfaden zur gcloud CLI. Befehle für das Load-Balancing finden Sie im Referenzhandbuch für die API und gcloud.
Wenn Sie die gcloud CLI noch nicht ausgeführt haben, führen Sie zuerst
gcloud init
zur Authentifizierung aus.Sie sollten wissen, wie CA-Pools erstellt werden.
Berechtigungen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen dieser Anleitung benötigen:
- Zum Erstellen von Load-Balancer-Ressourcen wie
TargetHTTPProxy
: Compute Load Balancer Admin (roles/compute.loadBalancerAdmin
) - So verwenden Sie Zertifikatmanager-Ressourcen:
Zertifikatmanager-Inhaber (
roles/certificatemanager.owner
) -
So erstellen Sie Sicherheits- und Netzwerkkomponenten: Compute-Netzwerkadministrator (
roles/compute.networkAdmin
) und Compute-Sicherheitsadministrator (roles/compute.securityAdmin
) - Zum Erstellen eines Projekts (optional):
Project Creator (
roles/resourcemanager.projectCreator
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Private CA erstellen
Erstellen Sie eine private CA mit dem CA Service und erstellen Sie dann ein Root-Zertifikat:
Verwenden Sie zum Erstellen eines CA-Pools den Befehl
gcloud privateca pools create
:gcloud privateca pools create CA_POOL \ --location=us-central1
Ersetzen Sie
CA_POOL
durch die ID oder den Namen des übergeordneten CA-Pools.Verwenden Sie zum Erstellen einer privaten CA im CA-Pool den Befehl
gcloud privateca roots create
:gcloud privateca roots create CA_ROOT \ --pool=CA_POOL \ --subject="CN=my-ca, O=Test LLC" \ --location=us-central1
Dabei gilt:
CA_ROOT
ist die ID oder der Name der privaten CACA_POOL
ist die ID oder der Name des übergeordneten CA-Pools
Verwenden Sie zum Beschreiben der neuen CA und zum Erstellen der Datei
root.cert
den Befehlgcloud privateca roots describe
:gcloud privateca roots describe CA_ROOT \ --pool=CA_POOL \ --location=us-central1 \ --format='value(pemCaCertificates)' > root.cert
export ROOT=$(cat root.cert | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g')
Dabei gilt:
CA_ROOT
ist die ID oder der Name der privaten CACA_POOL
ist die ID oder der Name des übergeordneten CA-Pools
Hier finden Sie weitere Informationen:
TrustConfig mit privater CA erstellen
Erstellen Sie eine Zertifikatmanager-TrustConfig
-Ressource, die Ihre PKI darstellt. Verwenden Sie dazu das Root-Zertifikat, das mithilfe der privaten CA generiert wurde. Wir gehen davon aus, dass die Ressource TrustConfig
ein einfacher Trust Store mit einem einzelnen Trust-Anchor ist, der ein Root-Zertifikat darstellt.
Ersetzen Sie in den folgenden Schritten TRUST_CONFIG_NAME
durch den Namen der TrustConfig
-Ressource.
Erstellen Sie mit dem folgenden Befehl die Datei
trust_config.yaml
:cat << EOF > trust_config.yaml name: TRUST_CONFIG_NAME trustStores: - trustAnchors: - pemCertificate: "${ROOT?}" EOF
Verwenden Sie zum Erstellen der Zertifikatmanager-
TrustConfig
-Ressourcen den Befehlgcloud certificate-manager trust-configs import
:gcloud certificate-manager trust-configs import TRUST_CONFIG_NAME \ --source=trust_config.yaml \ --location=REGION
Ersetzen Sie Folgendes:
REGION
: Verwenden Sieglobal
für regionenübergreifenden internen Application Load Balancer, globalen externen Application Load Balancer oder klassischen Application Load Balancer. Verwenden Sie für regionale externe Application Load Balancer oder regionale interne Application Load Balancer die Region, in der Sie den Load Balancer konfiguriert haben.
Ressourcen für die Netzwerksicherheit erstellen
Mit einer Server-TLS-Richtlinie (Netzwerksicherheitsressource ServerTLSPolicy
) können Sie den serverseitigen TLS-Modus und die Ressource TrustConfig
angeben, die bei der Validierung von Clientzertifikaten verwendet werden sollen. Wenn der Client dem Load-Balancer ein ungültiges oder kein Zertifikat übergibt, gibt der clientValidationMode
an, wie die Clientverbindung verarbeitet wird.
- Wenn
clientValidationMode
aufALLOW_INVALID_OR_MISSING_CLIENT_CERT
gesetzt ist, werden alle Anfragen an das Backend übergeben, auch wenn die Validierung fehlschlägt oder das Clientzertifikat fehlt. - Wenn
clientValidationMode
aufREJECT_INVALID
gesetzt ist, werden nur Anfragen an das Backend weitergeleitet, die ein Clientzertifikat bereitstellen, das mit einerTrustConfig
-Ressource validiert werden kann.
Führen Sie die folgenden Schritte aus, um die Ressource ServerTLSPolicy
zu erstellen:
Wählen Sie je nachdem, wie Sie die Verbindung verarbeiten möchten, eine der folgenden Optionen aus.
Ersetzen Sie in den folgenden Schritten
SERVER_TLS_POLICY_NAME
durch den Namen der Server-TLS-Richtlinie undPROJECT_ID
durch die ID Ihres Google Cloud-Projekts.Option 1:
clientValidationMode
ist aufALLOW_INVALID_OR_MISSING_CLIENT_CERT
festgelegt.Erstellen Sie mit dem folgenden Befehl die Datei
server_tls_policy.yaml
:global
Verwenden Sie für externe Application Load Balancer und regionenübergreifende interne Application Load Balancer den folgenden Befehl:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: ALLOW_INVALID_OR_MISSING_CLIENT_CERT clientValidationTrustConfig: projects/PROJECT_ID/locations/global/trustConfigs/TRUST_CONFIG_NAME EOF
regional
Verwenden Sie für regionale externe Application Load Balancer und regionale interne Application Load Balancer den folgenden Befehl:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: ALLOW_INVALID_OR_MISSING_CLIENT_CERT clientValidationTrustConfig: projects/PROJECT_ID/locations/REGION/trustConfigs/TRUST_CONFIG_NAME EOF
Option 2:
clientValidationMode
ist aufREJECT_INVALID
festgelegt.Erstellen Sie mit dem folgenden Befehl die Datei
server_tls_policy.yaml
:global
Verwenden Sie für externe Application Load Balancer und regionenübergreifende interne Application Load Balancer den folgenden Befehl:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: REJECT_INVALID clientValidationTrustConfig: projects/PROJECT_ID/locations/global/trustConfigs/TRUST_CONFIG_NAME EOF
regional
Verwenden Sie für regionale externe Application Load Balancer und regionale interne Application Load Balancer den folgenden Befehl:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: REJECT_INVALID clientValidationTrustConfig: projects/PROJECT_ID/locations/REGION/trustConfigs/TRUST_CONFIG_NAME EOF
Verwenden Sie den Befehl
gcloud network-security server-tls-policies import
, um die RessourceServerTlsPolicy
zu erstellen.global
Verwenden Sie für externe Application Load Balancer und regionenübergreifende interne Application Load Balancer den folgenden Befehl:
gcloud network-security server-tls-policies import SERVER_TLS_POLICY_NAME \ --source=server_tls_policy.yaml \ --location=global
regional
Verwenden Sie für regionale externe Application Load Balancer und regionale interne Application Load Balancer den folgenden Befehl:
gcloud network-security server-tls-policies import SERVER_TLS_POLICY_NAME \ --source=server_tls_policy.yaml \ --location=REGION
Weitere Informationen finden Sie unter Validierungsmodi für MTLS-Clients.
Nächste Schritte
- Gegenseitiges TLS für einen globalen externen Anwendungs-Load-Balancer einrichten
- Gegenseitiges TLS für einen klassischen Anwendungs-Load-Balancer einrichten
- Gegenseitiges TLS für einen internen Application Load Balancer einrichten
- Gegenseitiges TLS für regionalen externen Application Load Balancer einrichten
- Gegenseitige TLS-Authentifizierung mit signierten Zertifikaten einrichten