Clientzertifikate verwalten
Verwenden Sie die folgenden Verfahren, um Clientzertifikate in Cloud SQL zu verwalten.
Clientzertifikat abrufen
Sie können den öffentlichen Schlüssel für ein Clientzertifikat abrufen. Den zugehörigen privaten Schlüssel können Sie jedoch nicht abrufen. Wenn Sie Ihren privaten Schlüssel verlieren, müssen Sie ein neues Zertifikat erstellen.
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen.
- Wählen Sie im SQL-Navigationsmenü die Option Verbindung aus.
- Wählen Sie den Tab Sicherheit aus.
- Klicken Sie unter Clientzertifikate verwalten auf einen Zertifikatsnamen.
- Die Seite SSL-Clientzertifikat wird geöffnet und zeigt das Clientzertifikat (
client-cert.pem
) mit einem Link zum Herunterladen des Zertifikats an.
Rufen Sie mit dem Befehl ssl client-certs describe
den öffentlichen Schlüssel des Clientzertifikats ab:
gcloud sql ssl client-certs describeCERT_NAME \ --instance=INSTANCE_NAME \ --format="value(cert)" > client-cert.pem
Listen Sie die Zertifikate aus der Instanz auf, um den Fingerabdruck des Zertifikats zu ermitteln, das Sie abrufen möchten:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /sslCertsWenn 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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts"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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#sslCertsList", "items": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint " "instance": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ", "createTime": "2020-02-13T00:10:20.595Z", "expirationTime": "2030-02-10T00:11:20.595Z" } ] }Notieren Sie den Inhalt des Felds
sha1Fingerprint
für das abzurufende Zertifikat. Lassen Sie dabei die Anführungszeichen weg.Rufen Sie das Zertifikat ab:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
- sha1FingerPrint: der Wert des Zertifikats "sha1FingerPrint"
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /sslCerts/sha1FingerPrint 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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint " "instance": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ", "createTime": "2020-02-13T00:10:20.595Z", "expirationTime": "2030-02-10T00:11:20.595Z" }-
Kopieren Sie alle Zertifikatsdaten in den Anführungszeichen in eine Datei, z. B.
client-cert.pem
. Lassen Sie dabei die Anführungszeichen weg.
Listen Sie die Zertifikate aus der Instanz auf, um den Fingerabdruck des Zertifikats zu ermitteln, das Sie abrufen möchten:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /sslCertsWenn 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts"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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#sslCertsList", "items": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint " "instance": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ", "createTime": "2020-02-13T00:10:20.595Z", "expirationTime": "2030-02-10T00:11:20.595Z" } ] }Notieren Sie den Inhalt des Felds
sha1Fingerprint
für das abzurufende Zertifikat. Lassen Sie dabei die Anführungszeichen weg.Rufen Sie das Zertifikat ab:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
- sha1FingerPrint: der Wert des Zertifikats "sha1FingerPrint"
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /sslCerts/sha1FingerPrint 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint " "instance": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ", "createTime": "2020-02-13T00:10:20.595Z", "expirationTime": "2030-02-10T00:11:20.595Z" }-
Kopieren Sie alle Zertifikatsdaten in den Anführungszeichen in eine Datei, z. B.
client-cert.pem
. Lassen Sie dabei die Anführungszeichen weg.
Clientzertifikat löschen
Wenn Sie ein Clientzertifikat löschen, wird der Datenbankserver aktualisiert und muss nicht neu gestartet werden.
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen.
- Wählen Sie im SQL-Navigationsmenü die Option Verbindung aus.
- Wählen Sie den Tab Sicherheit aus.
- Suchen Sie unter Clientzertifikate verwalten das Zertifikat, das Sie löschen möchten, und klicken Sie auf
.
- Klicken Sie im Bereich Clientzertifikat löschen auf OK.
Löschen Sie das Clientzertifikat mit dem Befehl ssl client-certs delete:
gcloud sql ssl client-certs deleteCERT_NAME \ --instance=INSTANCE_NAME
Listen Sie die Zertifikate aus der Instanz auf, damit Sie den Fingerabdruck des zu löschenden Zertifikats ermitteln können:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /sslCertsWenn 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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts"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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#sslCertsList", "items": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint " "instance": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ", "createTime": "2020-02-13T00:10:20.595Z", "expirationTime": "2030-02-10T00:11:20.595Z" } ] }Notieren Sie den Inhalt des Felds
sha1Fingerprint
für das zu löschende Zertifikat. Lassen Sie dabei die Anführungszeichen weg.Löschen Sie das Zertifikat:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
- sha1FingerPrint: der Wert des Zertifikats "sha1FingerPrint"
HTTP-Methode und URL:
DELETE https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /sslCerts/sha1FingerPrint 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 DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "PowerShell (Windows)
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ", "targetProject": "project-id " }
Listen Sie die Zertifikate aus der Instanz auf, damit Sie den Fingerabdruck des zu löschenden Zertifikats ermitteln können:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /sslCertsWenn 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts"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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#sslCertsList", "items": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint " "instance": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ", "createTime": "2020-02-13T00:10:20.595Z", "expirationTime": "2030-02-10T00:11:20.595Z" } ] }Notieren Sie den Inhalt des Felds
sha1Fingerprint
für das zu löschende Zertifikat. Lassen Sie dabei die Anführungszeichen weg.Löschen Sie das Zertifikat:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
- sha1FingerPrint: der Wert des Zertifikats "sha1FingerPrint"
HTTP-Methode und URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /sslCerts/sha1FingerPrint 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 DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "PowerShell (Windows)
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ", "targetProject": "project-id " }
Server-CA-Zertifikate verwalten (CA pro Instanz)
In diesem Abschnitt wird beschrieben, wie Sie Server-CA-Zertifikate verwalten, die intern von Cloud SQL erstellt werden. Dies ist der Standard-Server-CA-Modus in Cloud SQL. In dieser Zertifizierungsstellenhierarchie erstellt Cloud SQL für jede Instanz eine Server-Zertifizierungsstelle.
Server-CA-Zertifikate rotieren
Wenn Sie eine Benachrichtigung erhalten haben, dass Ihre Zertifikate ablaufen oder Sie eine Rotation auslösen möchten, führen Sie die folgenden Schritte aus, um die Rotation abzuschließen. Bevor Sie mit der Rotation beginnen, muss auf der Instanz eine neue Server-Zertifizierungsstelle vorhanden sein. Wenn bereits eine neue Zertifizierungsstelle für Server erstellt wurde, können Sie den ersten Schritt im folgenden Verfahren überspringen.
- Erstellen Sie eine neue Server-CA.
- Laden Sie die Informationen zum neuen Server-CA-zertifikat herunter:
- Aktualisieren Sie Ihre Clients, sodass die Informationen zum neuen Server-CA-zertifikat verwendet werden.
- Schließen Sie die Rotation ab. Dadurch wird das derzeit aktive Zertifikat in den Slot "Vorherige" verschoben und das neu hinzugefügte Zertifikat zum aktiven Zertifikat.
Laden Sie das neue Server-CA-Zertifikat, codiert als PEM-Datei, in Ihre lokale Umgebung herunter:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen.
- Wählen Sie im SQL-Navigationsmenü die Option Verbindung aus.
- Wählen Sie den Tab Sicherheit aus.
- Maximieren Sie Zertifikate verwalten.
- Wählen Sie CA-Zertifikat rotieren aus.
Wenn keine zulässigen Zertifikate vorhanden sind, ist die Option zum Wechseln nicht verfügbar. Sie müssen ein neues Server-CA-Zertifikat erstellen.
- Klicken Sie auf Zertifikate herunterladen.
Aktualisieren Sie alle Ihre PostgreSQL-Clients so, dass die neuen Informationen verwendet werden. Kopieren Sie hierzu die heruntergeladene Datei auf Ihre Client-Hostcomputer und ersetzen Sie die vorhandene server-ca.pem
-Datei.
Führen Sie nach der Aktualisierung der Clients die Rotation aus:
- Kehren Sie zum Tab Sicherheit zurück.
- Maximieren Sie Zertifikate verwalten.
- Wählen Sie CA-Zertifikat rotieren aus.
- Prüfen Sie, ob die Clients sich korrekt verbinden.
Wenn es Clients gibt, die für den Verbindungsaufbau nicht das Zertifikat verwenden, zu dem gewechselt wurde, wählen Sie Rollback eines CA-Zertifikats ausführen aus, um ein Rollback zur vorherigen Konfiguration durchzuführen.
- Erstellen Sie ein Server-CA-Zertifikat:
gcloud sql ssl server-ca-certs create \ --instance=
INSTANCE - Laden Sie die Zertifikatsinformationen in eine lokale PEM-Datei herunter:
gcloud sql ssl server-ca-certs list \ --format="value(cert)" \ --instance=
INSTANCE_NAME > \FILE_PATH /FILE_NAME .pem - Aktualisieren Sie alle Ihre Clients so, dass die neuen Informationen verwendet werden. Kopieren Sie hierzu die heruntergeladene Datei auf Ihre Client-Hostcomputer und ersetzen Sie die vorhandenen server-ca.pem-Dateien.
- Führen Sie nach der Aktualisierung der Clients die Rotation aus:
gcloud sql ssl server-ca-certs rotate \ --instance=
INSTANCE_NAME - Prüfen Sie, ob die Clients sich korrekt verbinden.
Gibt es Clients, die sich nicht mit dem gerade rotierten Zertifikat verbinden, können Sie ein Rollback zur vorherigen Konfiguration durchführen.
- Laden Sie die Server-CA-Zertifikate herunter:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /listServerCasWenn 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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas"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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "certs": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2020-02-10T17:18:54.935Z", "expirationTime": "2030-02-07T17:19:54.935Z" }, { "kind": "sql#sslCert", certSerialNumber": "cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2019-11-14T22:43:56.458Z", "expirationTime": "2029-11-11T22:44:56.458Z" } ], "activeVersion": "active-version ", "kind": "sql#instancesListServerCas" } - Schließen Sie die Rotation ab:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /rotateServerCaWenn 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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa"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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ", "targetProject": "project-id " }
- Laden Sie die Server-CA-Zertifikate herunter:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /listServerCasWenn 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas"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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "certs": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2020-02-10T17:18:54.935Z", "expirationTime": "2030-02-07T17:19:54.935Z" }, { "kind": "sql#sslCert", certSerialNumber": "cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2019-11-14T22:43:56.458Z", "expirationTime": "2029-11-11T22:44:56.458Z" } ], "activeVersion": "active-version ", "kind": "sql#instancesListServerCas" } - Schließen Sie die Rotation ab:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /rotateServerCaWenn 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa"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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ", "targetProject": "project-id " }
Wenn Sie beim Versuch, ein Zertifikat zu rotieren, die Fehlermeldung No upcoming/previous Server CA Certificate exists
erhalten, prüfen Sie, ob Sie den Befehl auf einer Instanz ausführen, die die CA-Hierarchie pro Instanz verwendet.
Mit dem Befehl gcloud sql instances describe
können Sie sich ansehen, welche Zertifizierungshierarchie für eine Cloud SQL-Instanz konfiguriert ist.
Weitere Informationen finden Sie unter Instanzinformationen aufrufen.
Rollback der Zertifikatsrotation durchführen
Nach Abschluss der Zertifikatsrotation müssen alle Clients das neue Zertifikat verwenden, um eine Verbindung mit der Cloud SQL-Instanz herstellen zu können. Wenn die Clients nicht korrekt aktualisiert wurden und die neuen Zertifikatsinformationen nicht verwenden, können sie keine SSL/TLS-Verbindung zur Instanz herstellen. In diesem Fall können Sie zur vorherigen Zertifikatskonfiguration zurückkehren.
Ein Rollback-Vorgang verschiebt das aktuell aktive Zertifikat in den Slot "Nächste". Das eventuell im Slot vorhandene Zertifikat wird dabei ersetzt. Das "vorherige" Zertifikat wird zum aktuell aktiven Zertifikat und die Zertifikatskonfiguration wird auf den Zustand vor Abschluss der Rotation zurückgesetzt.
So kehren Sie zur vorherigen Zertifikatskonfiguration zurück:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen.
- Wählen Sie im SQL-Navigationsmenü die Option Verbindung aus.
- Wählen Sie den Tab Sicherheit aus.
- Maximieren Sie Zertifikate verwalten.
- Wählen Sie Rollback eines CA-Zertifikats ausführen aus.
Wenn keine zulässigen Zertifikate vorhanden sind, ist die Rollback-Option nicht verfügbar. Andernfalls ist die Rollback-Aktion nach einigen Sekunden abgeschlossen.
gcloud sql ssl server-ca-certs rollback \ --instance=INSTANCE_NAME
- Laden Sie die Server-CA-Zertifikate herunter:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /listServerCasWenn 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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas"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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "certs": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2020-02-10T17:18:54.935Z", "expirationTime": "2030-02-07T17:19:54.935Z" }, { "kind": "sql#sslCert", certSerialNumber": "cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2019-11-14T22:43:56.458Z", "expirationTime": "2029-11-11T22:44:56.458Z" } ], "activeVersion": "active-version ", "kind": "sql#instancesListServerCas" } - Kopieren Sie das Feld
sha1Fingerprint
für die Version, zu der Sie mit dem Rollback zurückkehren möchten.Das ist die Version, deren Wert für createTime unmittelbar vor der Version mit dem Wert
activeVersion
für sha1Fingerprint liegt. - Machen Sie die Rotation rückgängig:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /rotateServerCaJSON-Text anfordern:
{ "rotateServerCaContext": {"nextVersion": "
sha1Fingerprint "} }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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa"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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ", "targetProject": "project-id " }
- Laden Sie die Server-CA-Zertifikate herunter:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /listServerCasWenn 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas"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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "certs": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2020-02-10T17:18:54.935Z", "expirationTime": "2030-02-07T17:19:54.935Z" }, { "kind": "sql#sslCert", certSerialNumber": "cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2019-11-14T22:43:56.458Z", "expirationTime": "2029-11-11T22:44:56.458Z" } ], "activeVersion": "active-version ", "kind": "sql#instancesListServerCas" } - Kopieren Sie das Feld
sha1Fingerprint
für die Version, zu der Sie mit dem Rollback zurückkehren möchten.Das ist die Version, deren Wert für createTime unmittelbar vor der Version mit dem Wert
activeVersion
für sha1Fingerprint liegt. - Machen Sie die Rotation rückgängig:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /rotateServerCaJSON-Text anfordern:
{ "rotateServerCaContext": {"nextVersion": "
sha1Fingerprint "} }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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa"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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ", "targetProject": "project-id " }
Wenn Sie beim Zurückrollen der Zertifizierungsstelle einen Fehler mit der Meldung No upcoming/previous Server CA Certificate exists
erhalten, prüfen Sie, ob Sie den Befehl auf einer Instanz ausführen, die die CA-Hierarchie pro Instanz verwendet.
Mit dem Befehl gcloud sql instances describe
können Sie sich ansehen, welche Zertifizierungshierarchie für eine Cloud SQL-Instanz konfiguriert ist.
Weitere Informationen finden Sie unter Instanzinformationen aufrufen.
Rotation einleiten
Sie müssen nicht warten, bis die E-Mail von Cloud SQL kam, um eine Rotation starten. Dies ist jederzeit möglich. Wenn Sie eine Rotation starten, wird ein neues Zertifikat erstellt und im Slot "Nächstes" abgelegt. Wenn zum Zeitpunkt der Anfrage bereits ein Zertifikat im Slot "Nächstes" vorhanden ist, wird dieses gelöscht. Es kann nur ein "nächstes" Zertifikat geben.
So leiten Sie eine Rotation ein:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen.
- Wählen Sie im SQL-Navigationsmenü die Option Verbindung aus.
- Wählen Sie den Tab Sicherheit aus.
- Maximieren Sie Zertifikate verwalten.
- Klicken Sie auf Neues CA-Zertifikat erstellen.
- Wählen Sie CA-Zertifikat rotieren aus.
Wenn keine zulässigen Zertifikate vorhanden sind, ist die Option zum Wechseln nicht verfügbar.
- Schließen Sie die Rotation ab, wie unter Server-CA-Zertifikate rotieren beschrieben.
- Leiten Sie die Rotation ein:
gcloud sql ssl server-ca-certs create \ --instance=
INSTANCE_NAME - Schließen Sie die Rotation ab, wie unter Server-CA-Zertifikate rotieren beschrieben.
-
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /rotateServerCaWenn 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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa"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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ", "targetProject": "project-id " } - Schließen Sie die Rotation ab, wie unter Server-CA-Zertifikate rotieren beschrieben.
-
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /rotateServerCaWenn 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa"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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ", "targetProject": "project-id " } - Schließen Sie die Rotation ab, wie unter Server-CA-Zertifikate rotieren beschrieben.
Informationen zu einem Server-CA-zertifikat abrufen
Sie können Informationen zu Ihrem Server-CA-zertifikat wie Ablaufdatum oder Verschlüsselungsstufe abrufen.
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen.
- Wählen Sie im SQL-Navigationsmenü die Option Verbindung aus.
- Wählen Sie den Tab Sicherheit aus.
Unter Server-CA-Zertifikate verwalten sehen Sie in der Tabelle das Ablaufdatum Ihres Server-CA-Zertifikats.
Rufen Sie den Zertifikatstyp mit dem Befehl
gcloud sql ssl server-ca-certs list
ab.--instance=INSTANCE_NAME
gcloud sql ssl server-ca-certs list \ --instance=INSTANCE_NAME
Beim Beschreiben der Instanz können Sie Details zum Server-CA-Zertifikat abrufen:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=serverCaCert
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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=serverCaCert"
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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=serverCaCert" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "serverCaCert": { "kind": "sql#sslCert", "certSerialNumber": "cert-serial-number ", "cert": "cert-value -", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2020-02-10T17:18:54.935Z", "expirationTime": "2030-02-07T17:19:54.935Z" } }
Beim Beschreiben der Instanz können Sie Details zum Server-CA-Zertifikat abrufen:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=serverCaCert
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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=serverCaCert"
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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=serverCaCert" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "serverCaCert": { "kind": "sql#sslCert", "certSerialNumber": "cert-serial-number ", "cert": "cert-value -", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2020-02-10T17:18:54.935Z", "expirationTime": "2030-02-07T17:19:54.935Z" } }
Inhalt von CA-Zertifikaten ansehen
Mit openssl storeutl
können Sie den Inhalt von Zertifizierungsstellenzertifikaten aufrufen.
Wenn Sie den Befehl sql ssl server-ca-certs list ausführen, erhalten Sie möglicherweise mehrere CA-Zertifikate aus früheren drehungsbezogenen Vorgängen.
- Führen Sie dazu diesen Befehl aus:
gcloud sql ssl server-ca-certs list \ --instance=
INSTANCE_NAME \ --format='value(cert)' > temp_cert.pemErsetzen Sie INSTANCE_NAME durch den Namen der Instanz.
- Verwenden Sie
openssl
, um den Inhalt der CA-Zertifikate zu prüfen.
openssl storeutl -noout -text temp_cert.pem
Inhalt eines Serverzertifikats ansehen
Mitopenssl s_client
können Sie den Inhalt von Serverzertifikaten aufrufen.
Führen Sie den folgenden Befehl aus, um den Inhalt des Serverzertifikats aufzurufen:
openssl s_client -starttls postgres -connectINSTANCE_IP_ADDRESS :5432
Ersetzen Sie INSTANCE_IP_ADDRESS durch die IP-Adresse der Instanz.
Serverzertifikate verwalten (gemeinsame Zertifizierungsstelle und vom Kunden verwaltete Zertifizierungsstelle)
In diesem Abschnitt wird beschrieben, wie Sie Serverzertifikate auf Instanzen verwalten, die freigegebene oder vom Kunden verwaltete Zertifizierungsstellen verwenden.
Sie können die Verwendung freigegebener Zertifizierungsstellen als Server-Zertifizierungsstellenmodus für Ihre Instanz aktivieren, indem Sie beim Erstellen der Instanz GOOGLE_MANAGED_CAS_CA
für die Einstellung serverCaMode
(Cloud SQL Admin API) oder das Flag --server-ca-mode
(gcloud CLI) angeben.
Wenn Sie eine vom Kunden verwaltete Zertifizierungsstelle als Server-Zertifizierungsstellenmodus für Ihre Instanz verwenden möchten, müssen Sie beim Erstellen der Instanz CUSTOMER_MANAGED_CAS_CA
für die Einstellung serverCaMode
(Cloud SQL Admin API) oder das Flag --server-ca-mode
(gcloud CLI) angeben. Außerdem benötigen Sie einen gültigen Zertifizierungsstellenpool und eine gültige Zertifizierungsstelle. Weitere Informationen finden Sie unter vom Kunden verwaltete Zertifizierungsstelle verwenden.
Serverzertifikate rotieren
Wenn Sie eine Benachrichtigung erhalten haben, dass Ihre Serverzertifikate ablaufen oder Sie eine Rotation auslösen möchten, führen Sie die folgenden Schritte aus, um die Rotation abzuschließen. Bevor Sie die Rotation starten, muss ein neues Serverzertifikat für die anstehende Rotation erstellt werden. Wenn für die nächste Rotation bereits ein neues Serverzertifikat erstellt wurde, können Sie den ersten Schritt im folgenden Verfahren überspringen.
So rotieren Sie das Serverzertifikat in Ihrer Instanz:
Wenn Sie ein neues Serverzertifikat benötigen, erstellen Sie es.
Wenn Ihre Clients der Stamm-Zertifizierungsstelle bereits vertrauen, ist dieser Schritt optional. Wenn Sie Ihre Clients jedoch mit Informationen zur Server-CA aktualisieren müssen, gehen Sie so vor:
- Laden Sie die neuesten Informationen zur Server-CA herunter.
- Aktualisieren Sie Ihre Clients, sodass die neuesten Informationen zur Server-CA verwendet werden.
Schließen Sie die Rotation ab, indem Sie das aktive Zertifikat in den vorherigen Slot verschieben und das neue Zertifikat zum aktiven Zertifikat aktualisieren.
Sie können die Google Cloud Console nicht verwenden, um Serverzertifikate in Instanzen zu rotieren, die während der Vorabversion CA Service verwenden.
Verwenden Sie stattdessen den Befehl gcloud beta sql ssl server-certs rotate
oder die Befehle der Cloud SQL Admin API.
- Verwenden Sie den folgenden Befehl, um ein Serverzertifikat zu erstellen:
gcloud beta sql ssl server-certs create \ --instance=
INSTANCE
Ersetzen Sie INSTANCE durch den Namen der Instanz.
- Achten Sie darauf, dass Sie das aktuelle CA-Bundle verwenden.
Wenn Sie nicht das neueste CA-Bundle verwenden, führen Sie den folgenden Befehl aus, um die neuesten Server-CA-Informationen für die Instanz in eine lokale PEM-Datei herunterzuladen:
gcloud beta sql ssl server-certs list \ --format="value(ca_cert.cert)" \ --instance=
INSTANCE_NAME > \FILE_PATH /server-ca.pemSie können die CA-Bundles auch aus der Tabelle mit den Zertifikatsbundles von Stamm- und regionalen Zertifizierungsstellen auf dieser Seite herunterladen.
Aktualisieren Sie dann alle Ihre Clients so, dass die neuen Informationen zur Server-CA verwendet werden. Kopieren Sie hierzu die heruntergeladene Datei auf Ihre Client-Hostcomputer und ersetzen Sie die vorhandenen
server-ca.pem
-Dateien. - Führen Sie nach der Aktualisierung aller Clients (falls erforderlich) die Rotation aus:
gcloud beta sql ssl server-certs rotate \ --instance=
INSTANCE_NAME Prüfen Sie, ob die Clients sich korrekt verbinden.
Wenn es Clients gibt, die für den Verbindungsaufbau nicht das Zertifikat verwenden, zu dem neu rotiert wurde, führen Sie ein Rollback zur vorherigen Konfiguration aus.
Erstellen Sie ein Serverzertifikat.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_ID: die Instanz-ID
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID /addServerCertificateWenn 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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate"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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID ", "status": "PENDING", "user": "user@example.com", "insertTime": "2024-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ", "targetProject": "PROJECT_ID " }Wenn Sie Informationen zum Server-CA-Zertifikat herunterladen möchten, können Sie den folgenden Befehl verwenden.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_ID: die Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID /listServerCertificatesWenn 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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "caCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "
CERT_SERIAL_NUMBER_CA_CERT_ONE ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-10T17:18:54.935Z", "expirationTime": "2034-07-10T17:19:54.935Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-14T22:43:56.458Z", "expirationTime": "2034-11-11T22:44:56.458Z" } ], "serverCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-16T18:11:39Z", "expirationTime": "2025-09-16T18:11:38Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-10T20:56:06Z", "expirationTime": "2025-09-10T20:56:05Z" } ], "activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ", "kind": "sql#instancesListServerCertificates" }Schließen Sie die Rotation ab.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_ID: die Instanz-ID
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificateWenn 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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID ", "status": "PENDING", "user": "user@example.com", "insertTime": "2024-09-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/operation-id ", "targetProject": "PROJECT_ID " }
Erstellen Sie ein Serverzertifikat.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_ID: die Instanz-ID
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID /addServerCertificateWenn 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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate"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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID ", "status": "PENDING", "user": "user@example.com", "insertTime": "2024-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ", "targetProject": "PROJECT_ID " }Wenn Sie Informationen zum Server-CA-Zertifikat herunterladen möchten, können Sie den folgenden Befehl verwenden.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_ID: die Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID /listServerCertificatesWenn 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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "caCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "
CERT_SERIAL_NUMBER_CA_CERT_ONE ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-10T17:18:54.935Z", "expirationTime": "2034-07-10T17:19:54.935Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-14T22:43:56.458Z", "expirationTime": "2034-11-11T22:44:56.458Z" } ], "serverCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-16T18:11:39Z", "expirationTime": "2025-09-16T18:11:38Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-10T20:56:06Z", "expirationTime": "2025-09-10T20:56:05Z" } ], "activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ", "kind": "sql#instancesListServerCertificates" }Schließen Sie die Rotation ab.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_ID: die Instanz-ID
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificateWenn 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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID ", "status": "PENDING", "user": "user@example.com", "insertTime": "2024-09-20T21:30:35.667Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ", "targetProject": "PROJECT_ID " }
Rollback der Zertifikatsrotation
Nach Abschluss der Serverzertifikatsrotation müssen alle Ihre Clients das neue Zertifikat verwenden, um eine Verbindung mit der Cloud SQL-Instanz herzustellen. Wenn die Clients nicht korrekt aktualisiert wurden und die neuen Zertifikatsinformationen nicht verwenden, können sie keine SSL/TLS-Verbindung zur Instanz herstellen. In diesem Fall können Sie zur vorherigen Zertifikatskonfiguration zurückkehren.
Ein Rollback-Vorgang verschiebt das aktuell aktive Zertifikat in den Slot „Nächste“. Das eventuell im Slot vorhandene Zertifikat wird dabei ersetzt. Das „vorherige“ Zertifikat wird zum aktiven Zertifikat und die Zertifikatskonfiguration wird auf den Zustand vor Abschluss der Rotation zurückgesetzt.
Sie können die Google Cloud Console nicht verwenden, um Serverzertifikate für Instanzen rückgängig zu machen, die während der Vorabversion CA Service verwenden.
Verwenden Sie stattdessen den Befehl gcloud beta sql ssl server-certs rollback
oder die Befehle der Cloud SQL Admin API.
gcloud beta sql ssl server-certs rollback \ --instance=INSTANCE_NAME
Listen Sie Ihre Serverzertifikate auf.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_ID: die Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID /listServerCertificatesWenn 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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "caCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "
CERT_SERIAL_NUMBER_CA_CERT_ONE ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-10T17:18:54.935Z", "expirationTime": "2034-07-10T17:19:54.935Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-14T22:43:56.458Z", "expirationTime": "2034-11-11T22:44:56.458Z" } ], "serverCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-16T18:11:39Z", "expirationTime": "2025-09-16T18:11:38Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-10T20:56:06Z", "expirationTime": "2025-09-10T20:56:05Z" } ], "activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ", "kind": "sql#instancesListServerCertificates" }Kopieren Sie das Feld
sha1Fingerprint
für die Version, zu der Sie mit dem Rollback zurückkehren möchten.Das ist die Version, deren Wert für
createTime
unmittelbar vor der Version mit dem Wertsha1Fingerprint
füractiveVersion
liegt.Machen Sie die Rotation rückgängig.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_ID: die Instanz-ID
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificateJSON-Text anfordern:
{ "rotateServerCertificateContext": {"nextVersion": "
sha1Fingerprint "} }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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ", "targetProject": "PROJECT_ID " }
Listen Sie Ihre Serverzertifikate auf.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_ID: die Instanz-ID
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID /listServerCertificatesWenn 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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "caCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "
CERT_SERIAL_NUMBER_CA_CERT_ONE ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-10T17:18:54.935Z", "expirationTime": "2034-07-10T17:19:54.935Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-14T22:43:56.458Z", "expirationTime": "2034-11-11T22:44:56.458Z" } ], "serverCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-16T18:11:39Z", "expirationTime": "2025-09-16T18:11:38Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-10T20:56:06Z", "expirationTime": "2025-09-10T20:56:05Z" } ], "activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ", "kind": "sql#instancesListServerCertificates" }Kopieren Sie das Feld
sha1Fingerprint
für die Version, zu der Sie mit dem Rollback zurückkehren möchten.Das ist die Version, deren Wert für
createTime
unmittelbar vor der Version mit dem Wertsha1Fingerprint
füractiveVersion
liegt.Machen Sie die Rotation rückgängig.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_ID: die Instanz-ID
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificateJSON-Text anfordern:
{ "rotateServerCertificateContext": {"nextVersion": "
sha1Fingerprint "} }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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
Antwort
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ", "targetProject": "PROJECT_ID " }
Inhalt von CA-Zertifikaten ansehen
Mit dem Dienstprogramm openssl storeutl
können Sie den Inhalt von Zertifizierungsstellenzertifikaten aufrufen.
Wenn Sie den Befehl beta sql ssl server-certs list ausführen, erhalten Sie aufgrund der Vertrauenskette immer mehrere CA-Zertifikate. Möglicherweise erhalten Sie auch mehrere Zertifizierungsstellenzertifikate aus früheren Umstellungsvorgängen.
- Führen Sie dazu diesen Befehl aus:
gcloud beta sql ssl server-certs list \ --instance=
INSTANCE_NAME \ --format='value(cert)' > temp_cert.pemErsetzen Sie INSTANCE_NAME durch den Namen der Instanz.
- Verwenden Sie
openssl
, um den Inhalt der CA-Zertifikate zu prüfen.
openssl storeutl -noout -text temp_cert.pem
Inhalt eines Serverzertifikats ansehen
Sie können openssl
-Dienstprogramme und den Befehl beta sql ssl server-certs list verwenden, um den Inhalt eines Serverzertifikats aufzurufen.
Wenn Sie den Befehl gcloud CLI ausführen, erhalten Sie aufgrund der Vertrauenskette immer mehrere Zertifikate der Zertifizierungsstelle. Möglicherweise erhalten Sie auch mehrere Zertifizierungsstellenzertifikate aus vorherigen drehungsbezogenen Vorgängen.
Nur openssl s_client
verwenden:
openssl s_client -starttls postgres -connectINSTANCE_IP_ADDRESS :5432
Ersetzen Sie INSTANCE_IP_ADDRESS durch die IP-Adresse der Instanz.
gcloud CLI
und openssl storeutl
verwenden:
- Führen Sie dazu diesen Befehl aus:
gcloud sql ssl server-certs list \ --instance=
INSTANCE_NAME \ --format='value(ssl_cert.cert)' > temp_cert.pemErsetzen Sie INSTANCE_NAME durch den Namen der Instanz.
- Verwenden Sie
openssl
, um den Inhalt der Serverzertifikate zu prüfen.
openssl storeutl -noout -text temp_cert.pem
Stamm- und regionale CA-Zertifikatsbundles für eine freigegebene Zertifizierungsstelle herunterladen
Wenn Sie eine von Google verwaltete gemeinsame Zertifizierungsstellenkonfiguration verwenden, können Sie die Stamm- und regionalen CA-Zertifikatsbundles aus der folgenden Tabelle herunterladen.
Diese Zertifikatsbundles gelten nicht für Instanzen, bei denen die Optionen „Pro Instanz“ oder „Vom Kunden verwaltete Zertifizierungsstelle“ verwendet werden.
Name der Region | Standort | Zertifikatsbundle | |
---|---|---|---|
Global | |||
CA für alle Regionen | Alle Standorte | global.pem |
|
Asien | |||
asia-east1 |
Taiwan | asia-east1.pem |
|
asia-east2 |
Hongkong | asia-east2.pem |
|
asia-northeast1 |
Tokio | asia-northeast1.pem |
|
asia-northeast2 |
Osaka | asia-northeast2.pem |
|
asia-northeast3 |
Seoul | asia-northeast3.pem |
|
asia-south1 |
Mumbai | asia-south1.pem |
|
asia-south2 |
Delhi | asia-south2.pem |
|
asia-southeast1 |
Singapur | asia-southeast1.pem |
|
asia-southeast2 |
Jakarta | asia-southeast2.pem |
|
Afrika | |||
africa-south1 |
Johannesburg | africa-south1.pem |
|
Australien | |||
australia-southeast1 |
Sydney | australia-southeast1.pem |
|
australia-southeast2 |
Melbourne | australia-southeast2.pem |
|
Europa | |||
europe-central2 |
Warschau | europe-central2.pem |
|
europe-north1 |
Finnland | europe-north1.pem |
|
europe-southwest1 |
Madrid | europe-southwest1.pem |
|
europe-west1 |
Belgien | europe-west1.pem |
|
europe-west2 |
London | europe-west2.pem |
|
europe-west3 |
Frankfurt | europe-west3.pem |
|
europe-west4 |
Niederlande | europe-west4.pem |
|
europe-west6 |
Zürich | europe-west6.pem |
|
europe-west8 |
Mailand | europe-west8.pem |
|
europe-west9 |
Paris | europe-west9.pem |
|
europe-west10 |
Berlin | europe-west10.pem |
|
europe-west12 |
Turin | europe-west12.pem |
|
Naher Osten | |||
me-central1 |
Doha | me-central1.pem |
|
me-central2 |
Dammam | me-central2.pem |
|
me-west1 |
Tel Aviv | me-west1.pem |
|
Nordamerika | |||
northamerica-northeast1 |
Montreal | northamerica-northeast1.pem |
|
northamerica-northeast2 |
Toronto | northamerica-northeast2.pem |
|
northamerica-south1 |
Mexiko | northamerica-south1.pem |
|
us-central1 |
Iowa | us-central1.pem |
|
us-east1 |
South Carolina | us-east1.pem |
|
us-east4 |
Northern Virginia | us-east4.pem |
|
us-east5 |
Columbus | us-east5.pem |
|
us-south1 |
Dallas | us-south1.pem |
|
us-west1 |
Oregon | us-west1.pem |
|
us-west2 |
Los Angeles | us-west2.pem |
|
us-west3 |
Salt Lake City | us-west3.pem |
|
us-west4 |
Las Vegas | us-west4.pem |
|
Südamerika | |||
southamerica-east1 |
São Paulo | southamerica-east1.pem |
|
southamerica-west1 |
Santiago | southamerica-west1.pem |
SSL/TLS-Konfiguration zurücksetzen
Sie können die SSL/TLS-Konfiguration vollständig zurücksetzen.
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen.
- Wählen Sie im SQL-Navigationsmenü die Option Verbindung aus.
- Gehen Sie zum Abschnitt SSL-Konfiguration zurücksetzen.
- Klicken Sie auf SSL-Konfiguration zurücksetzen.
Aktualisieren Sie das Zertifikat:
gcloud sql instances reset-ssl-config
INSTANCE_NAME - Erstellen Sie neue Clientzertifikate.
Aktualisieren Sie das Zertifikat:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /resetSslConfigWenn 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /resetSslConfig"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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /resetSslConfig" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Antwort
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ", "targetProject": "project-id " }- Erstellen Sie neue Clientzertifikate.
Nächste Schritte
- Mehr über SSL/TLS in Cloud SQL erfahren
- SSL/TLS konfigurieren
- Über SSL/TLS eine Verbindung zur Cloud SQL-Instanz herstellen
- SSL/TLS mit PostgreSQL verwenden
- Google Cloud An Standorten weltweit verfügbare Dienste