Auf dieser Seite wird beschrieben, wie Sie Ihre Client- und Server-CA-Zertifikate (Certificate Authority, Zertifizierungsstelle) verwalten.
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.
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen .
Cloud SQL-Instanzen aufrufen
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.
gcloud
Rufen Sie mit dem Befehl ssl client-certs describe
den öffentlichen Schlüssel des Clientzertifikats ab:
gcloud sql ssl client-certs describe CERT_NAME \
--instance= INSTANCE_NAME \
--format= "value(cert)" > client-cert.pem
REST Version 1
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 /sslCerts
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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.
REST v1beta4
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 /sslCerts
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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.
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen .
Cloud SQL-Instanzen aufrufen
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 .
gcloud
Löschen Sie das Clientzertifikat mit dem Befehl ssl client-certs delete :
gcloud sql ssl client-certs delete CERT_NAME \
--instance= INSTANCE_NAME
REST Version 1
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 /sslCerts
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 "
}
REST v1beta4
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 /sslCerts
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 (instanzbezogene CA)
In diesem Abschnitt wird beschrieben, wie Sie Server-CA-Zertifikate verwalten, die intern von Cloud SQL erstellt werden. Dies ist der Standardmodus für Server-CA 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 eine Rotation auslösen möchten, führen Sie die folgenden Schritte aus, um die Rotation abzuschließen. Bevor Sie die Rotation starten, muss auf der Instanz eine neue Server-CA vorhanden sein. Wenn bereits eine neue Server-Zertifizierungsstelle 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.
Nach der Rotation des SSL-Zertifikats erhalten Ihre App Engine- und Cloud SQL Auth-Proxyverbindungen beim Verbindungsaufbau automatisch ein neues Zertifikat.
Console
Laden Sie das neue Server-CA-Zertifikat, das als PEM-Datei codiert ist, in Ihre lokale Umgebung herunter:
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen .
Cloud SQL-Instanzen aufrufen
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 MySQL-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 .
gcloud
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.
REST Version 1
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 /listServerCas
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 /rotateServerCa
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 "
}
REST v1beta4
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 /listServerCas
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 /rotateServerCa
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 beim Versuch, ein Zertifikat zu rotieren, der Fehler No upcoming/previous Server CA Certificate exists
angezeigt wird, 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 sehen, welche CA-Hierarchie für eine Cloud SQL-Instanz konfiguriert ist.
Weitere Informationen finden Sie unter Instanzinformationen ansehen .
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.
Hinweis: Ein Zertifikat-Rollback ist nur möglich, wenn das alte Zertifikat noch nicht abgelaufen ist.
So kehren Sie zur vorherigen Zertifikatskonfiguration zurück:
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen .
Cloud SQL-Instanzen aufrufen
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
gcloud sql ssl server-ca-certs rollback \
--instance=INSTANCE_NAME
REST Version 1
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 /listServerCas
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 /rotateServerCa
JSON-Text anfordern:
{
"rotateServerCaContext": {"nextVersion": "sha1Fingerprint "}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 "
}
REST v1beta4
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 /listServerCas
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 /rotateServerCa
JSON-Text anfordern:
{
"rotateServerCaContext": {"nextVersion": "sha1Fingerprint "}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 Versuch, die CA-Rotation eines Zertifikats rückgängig zu machen, 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 sehen, welche CA-Hierarchie für eine Cloud SQL-Instanz konfiguriert ist.
Weitere Informationen finden Sie unter Instanzinformationen ansehen .
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:
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen .
Cloud SQL-Instanzen aufrufen
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.
gcloud
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.
REST Version 1
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 /rotateServerCa
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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.
REST v1beta4
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 /rotateServerCa
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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.
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen .
Cloud SQL-Instanzen aufrufen
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 --instance=INSTANCE_NAME
ab.
gcloud
gcloud sql ssl server-ca-certs list \
--instance= INSTANCE_NAME
REST Version 1
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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"
}
}
REST v1beta4
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 CA-Zertifikaten aufrufen.
Wenn Sie den Befehl sql ssl server-ca-certs list ausführen, erhalten Sie möglicherweise mehrere CA-Zertifikate aus früheren rotationsbezogenen Vorgängen.
gcloud
Führen Sie dazu diesen Befehl aus:
gcloud sql ssl server-ca-certs list \
--instance= INSTANCE_NAME \
--format= 'value(cert)' > temp_cert.pem
Ersetzen 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
Mit
openssl s_client
können Sie den Inhalt von Serverzertifikaten aufrufen.
gcloud
Führen Sie den folgenden Befehl aus, um den Inhalt des Serverzertifikats aufzurufen:
openssl s_client -starttls mysql -connect INSTANCE_IP_ADDRESS :3306
Ersetzen Sie INSTANCE_IP_ADDRESS durch die IP-Adresse der Instanz.
Benachrichtigung über den Ablauf des SSL-Zertifikats auf einem externen Server
Wenn das Server-CA-Zertifikat des externen Servers abläuft, rotieren Sie die SSL-Zertifikate , einschließlich des Server-CA-Zertifikats in der lokalen Instanz. Dieser Schritt hängt davon ab, wie die lokale Instanz verwaltet wird. Die Schritte können variieren, wenn Sie beispielsweise ein RDS-Server-CA-Zertifikat, ein Cloud SQL-Server-CA-Zertifikat oder ein datenbankgenerisches Server-CA-Zertifikat verwenden.
Wenn das Clientzertifikat abläuft, müssen Sie ein neues Zertifikat und einen neuen Schlüssel generieren. Das gilt sowohl für von Google Cloudverwaltete SSL-Zertifikate als auch für selbst signierte Zertifikate.
Aktualisieren Sie die Cloud SQL-Quelldarstellungsinstanz mit den neuen SSL-Zertifikaten.
Serverzertifikate verwalten (gemeinsame CA)
In diesem Abschnitt wird beschrieben, wie Sie Serverzertifikate auf Instanzen verwalten, die freigegebene oder vom Kunden verwaltete CAs verwenden.
Sie können die Verwendung freigegebener CAs als Server-CA-Modus für Ihre Instanz aktivieren, indem Sie GOOGLE_MANAGED_CAS_CA
für die Einstellung serverCaMode
(Cloud SQL Admin API) oder das Flag --server-ca-mode
(gcloud CLI ) angeben, wenn Sie Ihre Instanz erstellen .
Wenn Sie eine vom Kunden verwaltete Zertifizierungsstelle als Server-Zertifizierungsstellenmodus für Ihre Instanz verwenden möchten, müssen Sie CUSTOMER_MANAGED_CAS_CA
für die Einstellung serverCaMode
(Cloud SQL Admin API) oder das Flag --server-ca-mode
(gcloud CLI ) angeben, wenn Sie Ihre Instanz erstellen . Außerdem benötigen Sie einen gültigen Zertifizierungsstellenpool und eine gültige Zertifizierungsstelle. Weitere Informationen finden Sie unter Vom Kunden verwaltete CA verwenden .
Serverzertifikate rotieren
Wenn Sie eine Benachrichtigung erhalten haben, dass Ihre Serverzertifikate ablaufen, oder 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 bereits ein neues Serverzertifikat für die anstehende Rotation erstellt wurde, können Sie den ersten Schritt im folgenden Verfahren überspringen.
Führen Sie die folgenden Schritte aus, um das Serverzertifikat auf Ihrer Instanz zu rotieren:
Wenn Sie ein neues Serverzertifikat benötigen, erstellen Sie eines .
Wenn Ihre Clients der Stammzertifizierungsstelle bereits vertrauen, ist dieser Schritt optional. Wenn Sie Ihre Clients jedoch mit Server-CA-Informationen aktualisieren müssen, gehen Sie so vor:
Laden Sie die neuesten Server-CA-Informationen 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 machen.
Console
Laden Sie die als PEM-Datei codierten Informationen zum Server-CA-zertifikat in Ihre lokale Umgebung herunter:
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen .
Cloud SQL-Instanzen aufrufen
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 .
Prüfen Sie, ob die Option Serverzertifikat rotieren als verfügbare Option angezeigt wird. Wählen Sie sie jedoch noch nicht aus.
Wenn keine zulässigen Zertifikate vorhanden sind, ist die Option zum Wechseln nicht verfügbar. Sie müssen ein neues Serverzertifikat erstellen.
Klicken Sie auf Zertifikate herunterladen .
Aktualisieren Sie alle Ihre MySQL-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 Zertifikat wechseln aus.
Klicken Sie im Dialogfeld Zertifikatwechsel bestätigen auf Wechseln .
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 Zertifikats ausführen aus, um ein Rollback zur vorherigen Konfiguration durchzuführen .
gcloud
Verwenden Sie den folgenden Befehl, um ein Serverzertifikat zu erstellen:
gcloud sql ssl server-certs create \
--instance=INSTANCE
Ersetzen Sie INSTANCE durch den Namen der Instanz.
Achten Sie darauf, dass Sie das neueste 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 sql ssl server-certs list \
--format="value(ca_cert.cert)" \
--instance=INSTANCE_NAME > \
FILE_PATH /server-ca.pem
Oder laden Sie die CA-Bundles von der Tabelle mit Root- und regionalen CA-Zertifikat-Bundles auf dieser Seite herunter.
Aktualisieren Sie dann alle Ihre Clients so, dass die neuen Server-CA-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 aller Clients (falls erforderlich) die Rotation aus:
gcloud 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 Serverzertifikat verwenden, zu dem neu rotiert wurde, führen Sie ein Rollback zur vorherigen Konfiguration durch .
REST Version 1
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 /addServerCertificate
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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üssen, 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 /listServerCertificates
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 /rotateServerCertificate
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 "
}
REST v1beta4
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 /addServerCertificate
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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üssen, 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 /listServerCertificates
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 /rotateServerCertificate
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 "
}
Zertifikatsrotation rückgängig machen
Nach Abschluss der Serverzertifikatsrotation 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 ein Rollback zur vorherigen Zertifikatskonfiguration durchführen.
Ein Rollback-Vorgang verschiebt das 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.
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen .
Cloud SQL-Instanzen aufrufen
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 für Serverzertifikat durchführen aus.
Wenn keine zulässigen Zertifikate vorhanden sind, ist die Rollback-Option nicht verfügbar.
Wählen Sie im Dialogfeld Rollback des Zertifikats bestätigen die Option Rollback aus.
Das Zurücksetzen kann einige Sekunden dauern.
gcloud
gcloud sql ssl server-certs rollback \
--instance=INSTANCE_NAME
REST Version 1
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 /listServerCertificates
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 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 /rotateServerCertificate
JSON-Text anfordern:
{
"rotateServerCertificateContext": {"nextVersion": "sha1Fingerprint "}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 "
}
REST v1beta4
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 /listServerCertificates
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 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 /rotateServerCertificate
JSON-Text anfordern:
{
"rotateServerCertificateContext": {"nextVersion": "sha1Fingerprint "}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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 sich den Inhalt von CA-Zertifikaten ansehen.
Wenn Sie den Befehl sql ssl server-certs list ausführen, erhalten Sie aufgrund der Vertrauenskette immer mehrere CA-Zertifikate.
Möglicherweise erhalten Sie auch mehrere CA-Zertifikate aus früheren rotationsbezogenen Vorgängen.
gcloud
Führen Sie dazu diesen Befehl aus:
gcloud sql ssl server-certs list \
--instance= INSTANCE_NAME \
--format= 'value(cert)' > temp_cert.pem
Ersetzen 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 sql ssl server-certs list verwenden, um den Inhalt eines Serverzertifikats aufzurufen.
Wenn Sie den gcloud CLI -Befehl ausführen, erhalten Sie aufgrund der Vertrauenskette immer mehrere CA-Zertifikate. Möglicherweise erhalten Sie auch mehrere CA-Zertifikate aus früheren rotationsbezogenen Vorgängen.
gcloud
Nur mit openssl s_client
:
openssl s_client -starttls mysql -connect INSTANCE_IP_ADDRESS :3306
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.pem
Ersetzen 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
Root- und regionale CA-Zertifikatbündel für eine gemeinsame CA herunterladen
Wenn Sie eine von Google verwaltete gemeinsame CA-Konfiguration verwenden, können Sie die Stamm- und regionalen CA-Zertifikatbündel aus der folgenden Tabelle herunterladen.
Diese Zertifikatbündel gelten nicht für Instanzen, die die Optionen „Pro Instanz“ oder „Vom Kunden verwaltete CA“ verwenden.
SSL/TLS-Konfiguration zurücksetzen
Sie können die SSL/TLS-Konfiguration vollständig zurücksetzen.
Achtung : Nach diesem Vorgang ist es nicht mehr möglich, SSL/TLS-Verbindungen zur Instanz herzustellen. Sie müssen dazu erst neue Clientzertifikate erstellen, um die zuvor verwendeten zu ersetzen.
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen .
Cloud SQL-Instanzen aufrufen
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 .
REST v1beta4
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 /resetSslConfig
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu haben Sie gcloud init
oder gcloud auth login
ausgeführt oder die Cloud Shell genutzt, die Sie automatisch bei der gcloud
-Befehlszeile anmeldet.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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)
Hinweis: Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto bei der gcloud
-Befehlszeile angemeldet haben. Dazu führen Sie gcloud init
oder gcloud auth login
aus.
Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list
aus.
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 Content
Sie 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