SSL-/TLS-Zertifikate verwalten

Auf dieser Seite wird beschrieben, wie Sie Ihre Client- und Serverzertifikate verwalten.

Clientzertifikate 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

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite "Cloud SQL-Instanzen"

  2. Klicken Sie auf den Instanznamen, um die zugehörige Seite Instanzdetails zu öffnen.
  3. Klicken Sie im linken Navigationsbereich auf den Link Verbindungen.
  4. Scrollen Sie nach unten zum Abschnitt SSL-Clientzertifikate konfigurieren.
  5. Klicken Sie auf einen Zertifikatsnamen. Das Dialogfeld SSL-Clientzertifikat wird geöffnet und zeigt das Clientzertifikat (client-cert.pem) 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

  1. Listen Sie die Zertifikate aus der Instanz auf, um den Fingerabdruck des Zertifikats zu ermitteln, das Sie abrufen möchten:

    Geben Sie für die Parameter folgende Werte an:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID

    HTTP-Methode und URL:

    GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    Notieren Sie den Inhalt des Felds sha1Fingerprint für das abzurufende Zertifikat. Lassen Sie dabei die Anführungszeichen weg.

  2. Rufen Sie das Zertifikat ab:

    Geben Sie für die Parameter folgende Werte an:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID
    • sha1FingerPrint: der Wert des Zertifikats "sha1FingerPrint"

    HTTP-Methode und URL:

    GET https://www.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:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

  3. Kopieren Sie alle Zertifikatsdaten in den Anführungszeichen in eine Datei, z. B. client-cert.pem. Lassen Sie dabei die Anführungszeichen weg.

Ein Clientzertifikat löschen

Console (2. Generation)

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite "Cloud SQL-Instanzen"

  2. Klicken Sie auf den Instanznamen, um die zugehörige Seite Instanzdetails zu öffnen.
  3. Klicken Sie im linken Navigationsbereich auf den Link Verbindungen.
  4. Scrollen Sie nach unten zum Abschnitt SSL-Clientzertifikate konfigurieren.
  5. Suchen Sie das zu löschende Zertifikat und klicken Sie auf Löschen.
  6. Klicken Sie im Dialogfeld Clientzertifikat löschen auf OK.

Console (1. Generation)

Bei dieser Aufgabe wird Ihre Cloud SQL-Instanz neu gestartet.

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite "Cloud SQL-Instanzen"

  2. Klicken Sie auf den Instanznamen, um die zugehörige Seite Instanzdetails zu öffnen.
  3. Klicken Sie im linken Navigationsbereich auf den Link Verbindungen.
  4. Scrollen Sie nach unten zum Abschnitt SSL-Clientzertifikate konfigurieren, suchen Sie das zu löschende Zertifikat und klicken Sie auf Löschen.
  5. Klicken Sie im Dialogfeld Clientzertifikat löschen auf Jetzt neu starten.

    Die Instanz muss zum Abschluss des Vorgangs neu gestartet werden.

gcloud

Bei Instanzen der ersten Generation muss die Cloud SQL-Instanz für diese Aufgabe neu gestartet werden.

  1. Löschen Sie das Clientzertifikat mit dem Befehl ssl client-certs delete:

    gcloud sql ssl client-certs delete [CERT_NAME] --instance=[INSTANCE_NAME]
    
  2. Starten Sie die Instanz für Instanzen der ersten Generation neu:

    gcloud sql instances restart [INSTANCE_NAME]
    

REST

Bei Instanzen der ersten Generation muss die Cloud SQL-Instanz für diese Aufgabe neu gestartet werden.

  1. Listen Sie die Zertifikate aus der Instanz auf, damit Sie den Fingerabdruck des zu löschenden Zertifikats ermitteln können:

    Geben Sie für die Parameter folgende Werte an:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID

    HTTP-Methode und URL:

    GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    Notieren Sie den Inhalt des Felds sha1Fingerprint für das zu löschende Zertifikat. Lassen Sie dabei die Anführungszeichen weg.

  2. Löschen Sie das Zertifikat:

    Geben Sie für die Parameter folgende Werte an:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID
    • sha1FingerPrint: der Wert des Zertifikats "sha1FingerPrint"

    HTTP-Methode und URL:

    DELETE https://www.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:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

  3. Starten Sie die Instanz für Instanzen der ersten Generation neu:

    Geben Sie für die Parameter folgende Werte an:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID
    • activation-policy: die Einstellung der Aktivierungsrichtlinie lautet ALWAYS oder NEVER

    HTTP-Methode und URL:

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/restart

    JSON-Text anfordern:

    {
      "settings": {
        "activationPolicy": "activation-policy"
      }
    }
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    {
      "kind": "sql#operation",
      "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-20T21:30:35.667Z",
      "operationType": "RESTART",
      "name": "operation-id",
      "targetId": "instance-id",
      "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
      "targetProject": "project-id"
    }
    

Serverzertifikate verwalten

Serverzertifikate rotieren

Wenn Sie eine Benachrichtigung erhalten haben, dass Ihre Zertifikate ablaufen oder eine Rotation ausgelöst wurde, führen Sie die folgenden Schritte aus, um die Rotation abzuschließen:

  1. Laden Sie die Informationen zum neuen Serverzertifikat herunter.
  2. Aktualisieren Sie Ihre Clients, sodass die Informationen zum neuen Serverzertifikat verwendet werden.
  3. 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.

Console

Laden Sie die Informationen zum neuen Serverzertifikat herunter:

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".
    Zur Seite "Cloud SQL-Instanzen"
  2. Klicken Sie auf den Instanznamen, um die zugehörige Seite Instanzdetails zu öffnen.
  3. Klicken Sie im linken Navigationsbereich auf den Link Verbindungen.
  4. Scrollen Sie nach unten zum Abschnitt SSL-Serverzertifikate konfigurieren.
  5. Klicken Sie auf Neues Zertifikat erstellen.
  6. Scrollen Sie nach unten zum Abschnitt SSL-Serverzertifikate herunterladen.
  7. Klicken Sie auf Herunterladen.

Die als PEM-Datei codierten Informationen zum Serverzertifikat werden angezeigt und können in Ihre lokale Umgebung heruntergeladen werden.

  • 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:

  1. Kehren Sie zum Abschnitt SSL-Serverzertifikate konfigurieren zurück.
  2. Klicken Sie auf Zertifikat wechseln.
  3. Prüfen Sie, ob die Clients sich korrekt verbinden.
  4. Wenn es Clients gibt, die für den Verbindungsaufbau nicht das Zertifikat verwenden, zu dem neu rotiert wurde, klicken Sie auf Rollback eines Zertifikats ausführen, um ein Rollback zur vorherigen Konfiguration durchzuführen.

gcloud

  1. Laden Sie die Zertifikatsinformationen in eine lokale PEM-Datei herunter:
    gcloud beta sql ssl server-ca-certs list --format="value(cert)" \
    --instance=[INSTANCE_NAME] > [FILE_PATH]/[FILE_NAME].pem
  2. 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.
  3. Führen Sie nach der Aktualisierung der Clients die Rotation aus:
            gcloud beta sql ssl server-ca-certs rotate --instance=[INSTANCE_NAME]
          
  4. 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

  1. Laden Sie die Serverzertifikate herunter:

    Geben Sie für die Parameter folgende Werte an:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID

    HTTP-Methode und URL:

    GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/listServerCas

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

  2. Schließen Sie die Rotation ab:

    Geben Sie für die Parameter folgende Werte an:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID

    HTTP-Methode und URL:

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

Zertifikatsrotation rückgängig machen

Nach Abschluss der Zertifikatsrotation müssen alle Clients das neue Zertifikat verwenden, um eine Verbindung mit der Cloud SQL-Instanz herstellen zu können. Wenn die Clients nicht korrekt aktualisiert wurden und die neuen Zertifikatsinformationen nicht verwenden, können sie keine SSL-/TLS-Verbindung zur Instanz herstellen. In diesem Fall können Sie zur vorherigen Zertifikatskonfiguration zurückkehren.

Ein Rollback-Vorgang verschiebt das aktuell aktive Zertifikat in den Slot "Nächste". Das eventuell im Slot vorhandene Zertifikat wird dabei ersetzt. Das "vorherige" Zertifikat wird zum aktuell aktiven Zertifikat und die Zertifikatskonfiguration wird auf den Zustand vor Abschluss der Rotation zurückgesetzt.

So kehren Sie zur vorherigen Zertifikatskonfiguration zurück:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".
    Zur Seite "Cloud SQL-Instanzen"
  2. Klicken Sie auf den Instanznamen, um die zugehörige Seite Instanzdetails zu öffnen.
  3. Klicken Sie im linken Navigationsbereich auf den Link Verbindungen.
  4. Scrollen Sie nach unten zum Abschnitt SSL-Serverzertifikate konfigurieren.
  5. Klicken Sie auf Zertifikat wechseln. Es dauert einige Sekunden, bis der Vorgang abgeschlossen ist.
  6. Klicken Sie auf Rollback eines Zertifikats ausführen.

gcloud

gcloud beta sql ssl server-ca-certs rollback --instance=[INSTANCE_NAME]
   

REST

  1. Laden Sie die Serverzertifikate herunter:

    Geben Sie für die Parameter folgende Werte an:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID

    HTTP-Methode und URL:

    GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/listServerCas

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

  2. 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.

  3. Machen Sie die Rotation rückgängig:

    Geben Sie für die Parameter folgende Werte an:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID

    HTTP-Methode und URL:

    POST https://www.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:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

Rotation einleiten

Sie müssen nicht auf die E-Mail von Cloud SQL warten, um eine Rotation zu starten. Dies ist jederzeit möglich. Wenn Sie eine Rotation starten, wird ein neues Zertifikat erstellt und im Slot "Nächstes" abgelegt. Befindet sich in diesem Slot bereits ein Zertifikat, so wird es gelöscht. Es kann jeweils nur ein nächstes Zertifikat geben.

So leiten Sie eine Rotation ein:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".
    Zur Seite "Cloud SQL-Instanzen"
  2. Klicken Sie auf den Instanznamen, um die zugehörige Seite Instanzdetails zu öffnen.
  3. Klicken Sie im linken Navigationsbereich auf den Link Verbindungen.
  4. Scrollen Sie nach unten zum Abschnitt SSL-Serverzertifikate konfigurieren.
  5. Klicken Sie auf Neues Zertifikat erstellen.
  6. Schließen Sie die Rotation ab, wie unter Serverzertifikate rotieren beschrieben.

gcloud

  1. Leiten Sie die Rotation ein:
         gcloud beta sql ssl server-ca-certs create --instance=[INSTANCE_NAME]
         
  2. Schließen Sie die Rotation ab, wie unter Serverzertifikate rotieren beschrieben.

REST

  1. Geben Sie für die Parameter folgende Werte an:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID

    HTTP-Methode und URL:

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

  2. Schließen Sie die Rotation ab, wie unter Serverzertifikate rotieren beschrieben.

Informationen zu einem Serverzertifikat abrufen

Sie können Informationen zu Ihrem Serverzertifikat wie Ablaufdatum oder Verschlüsselungsstufe abrufen.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite "Cloud SQL-Instanzen"

  2. Klicken Sie auf den Instanznamen, um die zugehörige Seite Instanzdetails zu öffnen.
  3. Klicken Sie im linken Navigationsbereich auf den Link Verbindungen.
  4. Scrollen Sie nach unten zum Bereich SSL-Serverzertifikate konfigurieren.

    In der Tabelle sehen Sie das Ablaufdatum Ihres Serverzertifikats.

    Rufen Sie den Zertifikatstyp mit dem Befehl gcloud beta sql ssl server-ca-certs list --instance=[INSTANCE_NAME] ab.

gcloud

gcloud beta sql ssl server-ca-certs list --instance=[INSTANCE_NAME]

REST

Mit dem Befehl "describe" können Sie Details zum Serverzertifikat abrufen:

Geben Sie für die Parameter folgende Werte an:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID

HTTP-Methode und URL:

GET https://www.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:

Sie sollten in etwa folgende JSON-Antwort erhalten:

SSL/TLS-Konfiguration zurücksetzen

Sie können die SSL-/TLS-Konfiguration vollständig zurücksetzen.

gcloud

Bei Instanzen der ersten Generation muss die Cloud SQL-Instanz für diese Aufgabe neu gestartet werden.

  1. Aktualisieren Sie das Zertifikat:

    gcloud sql instances reset-ssl-config [INSTANCE_NAME]
    
  2. Wenn es eine Instanz der ersten Generation ist, starten Sie die Instanz neu, um die Aktualisierung abzuschließen:

    gcloud sql instances restart [INSTANCE_NAME]
    
  3. Erstellen Sie neue Clientzertifikate.

REST

Bei Instanzen der ersten Generation muss die Cloud SQL-Instanz für diese Aufgabe neu gestartet werden.

  1. Aktualisieren Sie das Zertifikat:

    Geben Sie für die Parameter folgende Werte an:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID

    HTTP-Methode und URL:

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/resetSslConfig

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

  2. Starten Sie die Instanz für Instanzen der ersten Generation neu:

    Geben Sie für die Parameter folgende Werte an:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID
    • activation-policy: die Einstellung der Aktivierungsrichtlinie lautet ALWAYS oder NEVER

    HTTP-Methode und URL:

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/restart

    JSON-Text anfordern:

    {
      "settings": {
        "activationPolicy": "activation-policy"
      }
    }
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    {
      "kind": "sql#operation",
      "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-20T21:30:35.667Z",
      "operationType": "RESTART",
      "name": "operation-id",
      "targetId": "instance-id",
      "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
      "targetProject": "project-id"
    }
    
  3. Erstellen Sie neue Clientzertifikate.

Weitere Informationen