Von Load Balancer verwaltete SSL-Zertifikate
Sie können Secure Socket Layer-(SSL-)Zertifikate mit dem Load Balancer über den Load-Balancer-Service verwenden.
In diesem Thema wird beschrieben, wie Sie SSL-Zertifikate im Load-Balancer-Service erstellen und verwalten. Es wird empfohlen, Zertifikate mit dem Certificates-Service zu erstellen und zu verwalten. Weitere Informationen finden Sie unter Zertifikate.
Sie können die vom Zertifikatsservice verwalteten Zertifikate, die von einem Load Balancer verwendet werden, über die Konsole anzeigen. Weitere Informationen finden Sie unter Vom Service verwaltete Zertifikate für Zertifikate auflisten.
Um Standard SSL mit einem Load Balancer und dessen Ressourcen zu verwenden, müssen Sie ein Zertifikat angeben.
Um gegenseitige TLS (mTLS) mit dem Load Balancer zu verwenden, müssen Sie mindestens eine Certificate Authority (CA) oder mindestens ein Certificate Authority Bundle (CA-Bundle) zu Ihrem System hinzufügen.
- Certificate Authority: Eine private Certificate Authority, die Blattzertifikaten ausgeben darf. Bei einem Load Balancer und seinen zugehörigen Ressourcen ist die CA ein Truststore, der im Zertifikatservice erstellt wurde und nicht von dem Benutzer hochgeladen wurde.
- CA-Paket: Eine Sammlung öffentlicher CA-Zertifikate, die Sie als aggregierte Gruppe hochladen können. CA-Bündel enthalten keine Private Keys oder Blattzertifikate.
Es wird vorgeschlagen, die zu verwendenden Zertifikats-Bundles hochzuladen, bevor Sie die Listener oder Backend-Sets erstellen, mit denen Sie sie verknüpfen möchten.
Sie können die folgenden Aufgaben für SSL-Zertifikate ausführen:
Konfigurieren Sie die SSL-Verarbeitung für einen Load Balancer.
Führen Sie die Zertifikate für einen Load Balancer auf.
Erstellen Sie ein neues Zertifikat für einen Load Balancer.
Details eines Zertifikats abrufen.
Aktualisieren Sie ein ablaufendes Zertifikat.
Löschen Sie ein Zertifikat aus einem Load Balancer.
Load Balancer verwenden im Allgemeinen Einzeldomainzertifikate. Load Balancer mit Listenern, die auch eine Anforderungsroutingkonfiguration enthalten (siehe Anforderungsrouting), erfordern jedoch möglicherweise ein Subject Alternative Name-(SAN-)Zertifikat (auch als Multidomainzertifikat bezeichnet) oder ein Platzhalterzertifikat. Der Load-Balancer-Service unterstützt jeden dieser Zertifikatstypen.
- Der Load-Balancer-Service generiert keine SSL-Zertifikate. Er kann nur ein vorhandenes Zertifikat importieren, dessen Eigentümer Sie bereits sind. Es kann sich dabei um ein Zertifikat handeln, das von Anbietern wie Verisign oder GoDaddy ausgestellt wurde. Sie können auch ein selbstsigniertes Zertifikat verwenden, das Sie mit einem Open-Source-Tool wie OpenSSL oder Let's Encrypt generieren. In der Dokumentation des entsprechenden Tools wird beschrieben, wie ein selbstsigniertes Zertifikat generiert wird.
- Wenn Sie ein selbstsigniertes Zertifikat für Backend-SSL weiterleiten, müssen Sie dasselbe Zertifikat auch im entsprechenden Feld für das CA-Zertifikat weiterleiten.
Oracle Cloud Infrastructure akzeptiert nur Zertifikate vom Typ x.509 im PEM-Format. Das folgende Beispiel zeigt ein PEM-codiertes Zertifikat:
-----BEGIN CERTIFICATE-----
<Base64_encoded_certificate>
-----END CERTIFICATE-----
In das PEM-Format konvertieren
Wenn Sie Zertifikate und Schlüssel in anderen Formaten als PEM erhalten, müssen Sie sie konvertieren, bevor Sie sie in das System hochladen können. Mit OpenSSL können Sie Zertifikate und Schlüssel in das PEM-Format konvertieren. Eine Anleitung finden Sie in den folgenden Beispielbefehlen.
Zertifikat oder Zertifikatskette von DER in PEM
openssl x509 -inform DER -in <certificate_name>.der -outform PEM -out <certificate_name>.pem
Private Key von DER in PEM
openssl rsa -inform DER -in <private_key_name>.der -outform PEM -out <private_key_name>.pem
Zertifikats-Bundle von PKCS#12 (PFX) in PEM
openssl pkcs12 -in <certificate_bundle_name>.p12 -out <certificate_bundle_name>.pem -nodes
Zertifikats-Bundle von PKCS#7 in PEM
openssl pkcs7 -in <certificate_bundle_name>.p7b -print_certs -out <certificate_bundle_name>.pem
Verifizierung des Peerzertifikats konfigurieren
Die Verifizierung des Peerzertifikats wird für die Clientauthentifizierung verwendet. Die Verifizierungstiefe für Peerzertifikate ist die Anzahl der Zertifikate in der Kette, die für die Clientauthentifizierung verifiziert werden müssen.
Es werden folgende Werte erwartet:
- Ein Zwischenzertifikat, Clientzertifikat, Root-Zertifikat - 2
- Clientzertifikat, Root-Zertifikat - 1s
Um zu bestimmen, ob Ihre Verifizierung Ihres Peerzertifikats falsch konfiguriert ist, beachten Sie Folgendes:
- Der Client gibt an, dass das Zertifikat nicht verifiziert werden kann, und führt zu einem Client-SSL-Handshake-Fehler. Diese Fehlermeldung variiert je nach Clienttyp.
- In den Load-Balancer-Logs wird der folgende Fehler angezeigt:
Client %s has SSL certificate verify error
- Führen Sie mit dem Utility "OpenSSL" den folgenden Befehl aus:
openssl verify -verbose -CAfile RootCert.pem Intermediate.pem
Es tritt ein Fehler auf, der anzeigt, in welcher Tiefe der Validierungsfehler auftritt:
error 20 at 0 depth lookup:unable to get local issuer certificate
Um dieses Problem zu beheben, geben Sie die richtige Zertifikatstiefe an, und überprüfen Sie, ob das Clientzertifikat und das Certificate-Authority-Zertifikat übereinstimmen und in der richtigen Reihenfolge angeordnet sind.
Zertifikatsketten hochladen
Wenn Sie mehrere Zertifikate haben, die eine einzelne Zertifikatskette bilden (z.B. Certificate-Authority-Zwischenzertifikate), fügen Sie alle relevanten Zertifikate in der richtigen Reihenfolge in eine Datei ein, bevor Sie sie in das System hochladen. Die richtige Reihenfolge beginnt unten mit dem Zertifikat, das direkt von der vertrauenswürdigen Root Certificate Authority signiert wurde. Alle zusätzlichen Zertifikate werden über dem signierten Zertifikat eingefügt.
Kombinieren Sie das Serverzertifikat (SSL_Certificate.crt
) und das Certificate-Authority-Zwischenzertifikat (intermediateCA.crt
) in einer einzelnen verketteten Datei.
Um eine einzelne, verkettete Datei mit dem SSL-Zertifikat und dem Certificate Authority-Zwischenzertifikat zu erhalten, öffnen Sie eine Eingabeaufforderung, und führen Sie den folgenden Befehl aus:
cat ssl_certificate.crt IntermediateCA.crt >> certbundle.pem
Das folgende Beispiel zeigt eine verkettete Zertifikatskettendatei mit vier Zertifikaten:
-----BEGIN CERTIFICATE-----
Base64-encoded_certificate
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base64-encoded_certificate
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base64-encoded_certificate
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base64-encoded_certificate
-----END CERTIFICATE-----
Private Keys weiterleiten
Es wird empfohlen, für Ihren RSA-Privat Key eine Mindestlänge von 2048 Bit festzulegen.
Wenn Ihre Private-Key-Weiterleitung einen Fehler zurückgibt, kann dies einen der folgenden drei Gründe haben:
-
Sie haben eine falsche Passphrase angegeben.
-
Ihr Private Key ist fehlerhaft.
-
Die für den Schlüssel verwendete Verschlüsselungsmethode wird vom System nicht erkannt.
Nichtübereinstimmung von Schlüsselpaar
Wenn Sie einen Fehler über eine Nichtübereinstimmung von Private Key und Public Key erhalten, überprüfen Sie vor dem Upload mit den folgenden OpenSSL-Befehlen, ob sie Teil desselben Paares ist:
openssl x509 -in certificate_name.crt -noout -modulus | openssl sha1
openssl rsa -in private_key.key -noout -modulus | openssl sha1
Prüfen Sie, ob die zurückgegebenen sha1
-Hashwerte exakt übereinstimmen. Wenn sie unterschiedlich sind, wird der angegebene Private Key nicht zum Signieren des öffentlichen Zertifikats verwendet und kann nicht verwendet werden.
Private-Key-Konsistenz
Wenn in Bezug auf den Private Key eine Fehlermeldung ausgegeben wird, können Sie die Konsistenz mit OpenSSL prüfen:
openssl rsa -check -in <private_key>.pem
Dieser Befehl prüft, ob der Schlüssel intakt ist, die Passphrase korrekt ist und die Datei einen gültigen RSA-Private Key enthält.
Private Key entschlüsseln
Wenn das System die für Ihren Private Key verwendete Verschlüsselungstechnik nicht erkennt, verschlüsseln Sie den Schlüssel. Laden Sie die unverschlüsselte Version des Schlüssels mit dem Zertifikats-Bundle hoch. Mit OpenSSL können Sie einen Private Key entschlüsseln:
openssl rsa -in <private_key>.pem -out <decrypted_private_key>.pem
SSL-Handling konfigurieren
Erfahren Sie mehr über die Konfiguration des SSL-Handlings für eine Load-Balancer-Ressource.
Sie können die folgenden SSL-Handling-Aufgaben für einen Load Balancer ausführen:
- SSL am Load Balancer beenden. Diese Konfiguration entspricht Frontend-SSL. Der Load Balancer kann verschlüsselten Traffic von einem Client zulassen. Der Traffic zwischen dem Load Balancer und den Backend-Servern wird nicht verschlüsselt.
- SSL zwischen dem Load Balancer und den Backend-Servern implementieren. Diese Konfiguration entspricht Backend-SSL. Der Load Balancer lässt keinen verschlüsselten Traffic von Clientservern zu. Der Traffic zwischen dem Load Balancer und den Backend-Servern wird verschlüsselt.
- Point-to-Point-SSL implementieren. Der Load Balancer kann SSL-verschlüsselten Traffic von Clients zulassen und verschlüsselt Traffic, der an die Backend-Server weitergeleitet wird.
SSL am Load Balancer beenden
Zum Beenden von SSL am Load Balancer müssen Sie einen Listener erstellen - und zwar an einem Port wie 443. Anschließend müssen Sie dem Listener ein hochgeladenes Zertifikats-Bundle zuordnen. Weitere Informationen finden Sie unter Load Balancer Listener erstellen.
Backend-SSL implementieren
Um SSL zwischen dem Load Balancer und den Backend-Servern zu implementieren, müssen Sie dem Backend-Set ein hochgeladenes Zertifikats-Bundle zuordnen. Weitere Informationen finden Sie unter Backend-Set für Load Balancer erstellen.
- Wenn mehr als ein Backend-Server im Backend-Set verwendet werden soll, signieren Sie die Backend-Server mit einem Zwischenzertifikat. Das Zwischen-CA-Zertifikat muss als Teil des Zertifikats-Bundles enthalten sein.
- Die Backend-Services müssen in der Lage sein, SSL zu akzeptieren und zu beenden.
Point-to-Point-SSL implementieren
Um Point-to-Point-SSL zu implementieren, müssen Sie die hochgeladenen Zertifikats-Bundles sowohl mit dem Listener als auch dem Backend-Set verknüpfen. Weitere Informationen finden Sie unter Load Balancer Listener erstellen und Backend-Set für Load Balancer erstellen.
Zertifikate auflisten - Serviceverwaltete Zertifikate
Zeigen Sie eine Liste der vom Certificates-Service verwalteten Zertifikate für einen Load Balancer an.
Load-Balancer-Zertifikate, die vom Certificates-Service verwaltet werden, können nur in der Load-Balancer-Konsole aufgelistet werden. Informationen zum Ausführen anderer Certificates-Serviceaufgaben, wie das Erstellen, Bearbeiten und Löschen eines Zertifikats, finden Sie unter Zertifikate.
Informationen zum Anzeigen von SSL-Zertifikaten, die mit dem Load Balancer-Service erstellt wurden, finden Sie unter Load Balancer-Zertifikate auflisten.
Konsole verwenden
Listenergebnisse filtern
Verwenden Sie Filter, um die vom Certificates-Service verwalteten Zertifikate in der Liste einzuschränken. Führen Sie je nach den angezeigten Optionen eine der folgenden Aktionen aus:
- Wählen Sie im Feld Suchen und filtern über der Listentabelle mindestens einen Filter aus, und geben Sie die Werte an, die Sie zum Eingrenzen der Liste verwenden möchten. Im Allgemeinen entsprechen die Filter den in der Listentabelle angezeigten Spalten, obwohl einige Filter Attribute darstellen, die nicht in der Tabelle angezeigt werden. Der Filter Compartment wird immer neben Angewendete Filter angezeigt.
- Wählen Sie auf der linken Seite der Listenseite einen Wert aus einem der verfügbaren Filter aus, wie Compartment, Status oder Tags.
Ändern Sie die Reihenfolge der Elemente in der Listentabelle, indem Sie die Sortiersymbole neben den Spaltennamen verwenden.
Informationen zum Suchen nach Ressourcen und Verwalten der Spalten in der Listentabelle, sofern diese Features verfügbar sind, finden Sie unter Ressourcen auflisten.
Aktionen
Wählen Sie in der Listentabelle den Namen eines vom Certificates-Service verwalteten Zertifikats aus, um die Detailseite zu öffnen, auf der Sie den Status anzeigen und andere Aufgaben ausführen können.