Fehlerbehebung bei SSL-Zertifikaten

In diesem Dokument wird beschrieben, wie Sie häufige Probleme mit von Google verwalteten und selbstverwalteten SSL-Zertifikaten diagnostizieren und beheben. Gültige SSL-Zertifikate schützen Daten bei der Übertragung und tragen dazu bei, die Dienstverfügbarkeit für Ihre Load-Balancing-Bereitstellungen zu gewährleisten.

Fehlerbehebung bei selbstverwalteten SSL-Zertifikaten

In dieser Anleitung wird beschrieben, wie Sie Probleme bei der Konfiguration selbstverwalteter SSL-Zertifikate beheben können.

Das Zertifikat kann nicht geparst werden

Google Cloud erfordert Zertifikate im PEM-Format. Wenn das Zertifikat im PEM-Format vorliegt, prüfen Sie Folgendes:

Sie können Ihr Zertifikat mithilfe des folgenden OpenSSL-Befehls validieren. Ersetzen Sie dabei CERTIFICATE_FILE durch den Pfad zu Ihrer Zertifikatsdatei:

openssl x509 -in CERTIFICATE_FILE -text -noout

Wenn OpenSSL Ihr Zertifikat nicht parsen kann:

Fehlender allgemeiner Name oder Subject Alternative Name

Google Cloud erfordert, dass Ihr Zertifikat entweder ein Attribut für einen gemeinsamen Namen (CN) oder einen alternativen Antragstellernamen (SAN) hat. Weitere Informationen finden Sie unter CSR erstellen.

Wenn beide Attribute fehlen, wird in Google Cloud eine Fehlermeldung wie die folgende angezeigt, wenn Sie versuchen, ein selbstverwaltetes Zertifikat zu erstellen:

ERROR: (gcloud.compute.ssl-certificates.create) Could not fetch resource:
 -   The SSL certificate is missing a Common Name(CN) or Subject Alternative
   Name(SAN).

Der private Schlüssel kann nicht geparst werden

Google Cloud erfordert private Schlüssel im PEM-Format, die die Kriterien für private Schlüssel erfüllen.

Sie können Ihren privaten Schlüssel mit dem folgenden OpenSSL-Befehl validieren. Ersetzen Sie dabei PRIVATE_KEY_FILE durch den Pfad zu Ihrem privaten Schlüssel:

    openssl rsa -in PRIVATE_KEY_FILE -check

Die folgenden Antworten weisen auf ein Problem mit Ihrem privaten Schlüssel hin:

  • unable to load Private Key
  • Expecting: ANY PRIVATE KEY
  • RSA key error: n does not equal p q
  • RSA key error: d e not congruent to 1
  • RSA key error: dmp1 not congruent to d
  • RSA key error: dmq1 not congruent to d
  • RSA key error: iqmp not inverse of q

Zur Behebung des Problems müssen Sie einen neuen privaten Schlüssel und ein neues Zertifikat erstellen.

Private Schlüssel mit Passphrasen

Wenn Sie von OpenSSL zur Eingabe einer Passphrase aufgefordert werden, müssen Sie die Passphrase aus Ihrem privaten Schlüssel entfernen, bevor Sie sie für Google Cloudverwenden können. Sie können den folgenden OpenSSL-Befehl verwenden:

openssl rsa -in PRIVATE_KEY_FILE \
    -out REPLACEMENT_PRIVATE_KEY_FILE

Ersetzen Sie die Platzhalter durch gültige Werte:

  • PRIVATE_KEY_FILE: Der Pfad zu Ihrem privaten Schlüssel, der mit einer Passphrase geschützt ist
  • REPLACEMENT_PRIVATE_KEY_FILE: Der Pfad, in dem Sie eine Kopie Ihres privaten Nur-Text-Schlüssels speichern möchten

Ablaufende Zwischenzertifikate

Wenn ein Zwischenzertifikat vor dem (untergeordneten) Serverzertifikat abläuft, könnte dies darauf hindeuten, dass Ihre Zertifizierungsstelle die Best Practices nicht befolgt.

Wenn ein Zwischenzertifikat abläuft, wird Ihr untergeordnetes Zertifikat, das inGoogle Cloud verwendet wird, möglicherweise ungültig. Dies hängt folgendermaßen vom SSL-Client ab:

  • Einige SSL-Clients betrachten nur die Ablaufzeit des untergeordneten Zertifikats und ignorieren abgelaufene Zwischenzertifikate.
  • Einige SSL-Clients behandeln eine Kette mit abgelaufenen Zwischenzertifikaten als ungültig und zeigen eine Warnung an.

So beheben Sie das Problem:

  1. Warten Sie, bis die Zertifizierungsstelle zu einem neuen Zwischenzertifikat gewechselt hat.
  2. Fordern Sie ein neues Zertifikat an.
  3. Laden Sie das neue Zertifikat mit den neuen Schlüsseln noch einmal hoch.

Ihre Zertifizierungsstelle lässt möglicherweise auch Quersignaturen für Zwischenzertifikate zu. Wenden Sie sich zur Bestätigung an Ihre Zertifizierungsstelle.

Der öffentliche RSA-Exponent ist zu groß

Die folgende Fehlermeldung wird angezeigt, wenn der öffentliche RSA-Exponent größer ist als Achten Sie darauf, 65537 gemäß RFC 4871 zu verwenden.

ERROR: (gcloud.compute.ssl-certificates.create) Could not fetch resource:
 -   The RSA public exponent is too large.

SSL-Zertifikat vom Ziel-Proxy entfernen

In den folgenden Schritten wird gezeigt, wie Sie ein einzelnes SSL-Zertifikat entfernen, das mit dem Ziel-HTTPS-Proxy verknüpft ist:

  1. Exportieren Sie den target-https-proxy in eine temporäre Datei.

    gcloud compute target-https-proxies export TARGET_PROXY_NAME > /tmp/proxy
    
  2. Bearbeiten Sie die Datei /tmp/proxy und entfernen Sie die folgenden Zeilen:

    sslCertificates:
    -   https://www.googleapis.com/compute/v1/projects/...
    
  3. Importieren Sie die Datei /tmp/proxy.

    gcloud compute target-https-proxies import TARGET_PROXY_NAME \
       --source=/tmp/proxy
    
  4. Optional: Löschen Sie das SSL-Zertifikat.

    gcloud compute ssl-certificates delete SSL_CERT_NAME
    

Ersetzen Sie Folgendes:

  • TARGET_PROXY_NAME ist der Name des HTTPS-Ziel-Proxys.
  • SSL_CERT_NAME ist der Name des SSL-Zertifikats.