SSL-Kommunikation für den Liberty-Anwendungs-Client-Container aktivieren

Für den Liberty-Anwendungs-Client-Container kann eine SSL-Konfiguration erforderlich sein, damit der Client-Container mit einem Server kommunizieren kann. Für die SSL-Konfiguration für den Anwendungs-Client-Container muss das SSL-Feature verwendet werden (ssl-1.0), das der Server für die SSL-Aktivierung erfordert. Die Konfigurationselemente und -attribute für Anwendungsclient und Server sind dieselben. Für den Anwendungs-Client-Container werden diese Werte jedoch in der Datei client.xml angegeben.

Informationen zu diesem Vorgang

Der SSL-Handshake ist eine Folge von Nachrichten, die über das SSL-Protokoll zwischen einem Client und einem Server ausgetauscht werden, um einen verbindungsspezifischen Schutz auszuhandeln. Voraussetzung für die Aktivierung von SSL für den Liberty-Anwendungs-Client-Container ist, dass das SSL-Feature (ssl-1.0) zumindest die Informationen enthält, die für die Erstellung einer vom Client verwendeten SSL-Konfiguration notwendig sind, nämlich einen Keystore und ein Kennwort.

Mit dem securityUtility-Befehl createSSLCertificate können Sie den Keystore des Clients erstellen und Informationen zur Konfiguration erhalten. Die Verwendung dieses Tools ist optional, denn Sie können auch einen Keystore und die zugehörige Konfiguration für andere, kundenspezifische Zwecke erstellen.

Vorgehensweise

Fügen Sie das Element keystore zur Datei client.xml hinzu. Das Attribut id muss auf defaultKeyStore gesetzt sein und das Attribut password das Keystore-Kennwort enthalten. Das Kennwort kann in Klartext oder verschlüsselt angegeben werden. Verwenden Sie zum Verschlüsseln des Kennworts die securityUtility-Verschlüsselungsoption.
<keyStore id="defaultKeyStore" password="yourPassword" />

Dies sind die erforderlichen Mindestinformationen für das Erstellen einer SSL-Konfiguration. Bei dieser Konfiguration erstellt der Client den Keystore und das Zertifikat, wenn diese während der SSL-Initialisierung nicht vorhanden sind. Das angegebene Kennwort muss mindestens sechs Zeichen lang sein. JKS ist der Standard-Keystore-Typ. Der Standardkeystore hat den Namen key.jks und befindet sich im Verzeichnis <Clientausgangsverzeichnis>/resources/security.

Der Client erstellt den Standardkeystore (defaultKeyStore), wenn er die vorherige Konfiguration zum ersten Mal startet. Wird das Standardzertifikat vom Client erstellt, hat dies jedoch Leistungseinbußen zur Folge. Es wird daher empfohlen, den in der defaultKeyStore-Konfiguration verwendeten Standardkeystore mit dem Befehl securityUtilitiy createSSLCertificate zu erstellen, um Leistungseinbußen zu vermeiden.

Weitere Informationen zu angepassten SSL-Konfigurationen finden Sie unter Liberty Profile: Attribute der SSL-Konfiguration.

Unterzeichnerzertifikate akzeptieren
Wenn zwischen dem Client und dem Server keine Vertrauensbeziehung besteht, wird der Benutzer bei der Kommunikation mit dem Client gefragt, ob der das Zertifikat vom Server akzeptiert. Antwortet der Benutzer durch Eingabe von ja, wird das Zertifikat in der Client-Keystore-Konfiguration gespeichert und die Befehlsausführung fortgesetzt. Antwortet der Benutzer durch Eingabe von nein, wird keine Vertrauensbeziehung aufgebaut. Der Aufruf endet in dem Fall mit einem Fehler.
Die Systemanfrage könnte beispielsweise wie folgt aussehen:
*** AUFFORDERUNG ZUM AUSTAUSCH DES SSL-UNTERZEICHNERS ***
Der SSL-Unterzeichner vom Zielhost wurde nicht im Truststore C:/liberty/workspace/build.image/wlp/usr/clients/myTestClient/resources/security/key.jks gefunden.

Es folgen die Unterzeichnerinformationen (vergewissern Sie sich, dass der Digest-Wert mit dem auf dem Server angezeigten Wert übereinstimmt):
Registrierter Name des Zertifikatinhabers: CN=localhost, O=ibm, C=us
Aussteller-DN:                             CN=localhost, O=ibm, C=us
Seriennummer:                              1327582458
Verfallsdatum:                             Sun Jan 04 06:54:18 CST 2099
SHA-1-Digest:                              00:6F:25:F1:78:5D:EB:00:B1:E2:99:DB:E8:D7:DF:3B:F8:E0:20:9A
Unterzeichner dem Truststore sofort hinzufügen? (j/n)
Wenn der Benutzer auf die Frage, ob der Unterzeichner zum Truststore hinzugefügt werden soll, durch Eingabe von nein reagiert, kann er die folgende Fehlernachricht empfangen:
[FEHLER] CWPKI0022E: Fehler beim SSL-Handshake: Es wurde ein Unterzeichner mit SubjectDN CN=localhost, O=ibm, C=us
vom Zielhost gesendet. Der Unterzeichner muss möglicherweise dem lokalen Truststore
C:/liberty/workspace/build.image/wlp/usr/clients/myTestClient/resources/security/key.jks im SSL-Konfigurationsalias defaultSSLConfig hinzugefügt werden. Die erweiterte Fehlernachricht aus der SSL-Handshake-Ausnahme lautet wie folgt:
PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:
        java.security.cert.CertPathValidatorException: The certificate issued by SubjectDN CN=localhost, O=ibm, C=us is not trusted; internal cause is:
        java.security.cert.CertPathValidatorException: Certificate chaining error
throw able: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: PKIX path building failed: java.security.cert.CertPathBuilderException
: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:

        java.security.cert.CertPathValidatorException: The certificate issued by
 SubjectDN CN=localhost, O=ibm, C=us is not trusted; internal cause is:
        java.security.cert.CertPathValidatorException: Certificate chaining error
Unterzeichnerzertifikat automatisch akzeptieren
Wenn der Client nicht zur Bereitstellung des Unterzeichnerzertifikats aufgefordert werden möchte und auswählt, dass das Unterzeichnerzertifikat des Servers ohne Untersuchung des Zertifikats akzeptiert werden soll, kann der Benutzer das Flag -autoAcceptSigner in der Befehlszeile des Client-Containers angeben.
client run client_name --autoAcceptSigner
Clientauthentifizierung
Wenn der Client mit einem Server mit aktivierter Clientauthentifizierung kommuniziert, muss der Server dem Client so vertrauen, wie der Client dem Server vertraut. Im Keystore des Clients müssen sich ein Schlüssel und ein persönliches Zertifikat befinden. Wenn Sie den securityUtility-Befehl createSSLCertificate verwenden, enthält der Keystore ein persönliches Zertifikat. Der Server, mit dem der Clientanwendungscontainer kommuniziert, muss dem Client vertrauen. Zu diesem Zweck muss der Unterzeichner vom Client zum Truststore des Servers hinzugefügt werden. Mit dem Java-Tool keytool können Sie den Unterzeichner aus dem Keystore des Anwendungs-Client-Containers extrahieren und das Zertifikat vom Client zum Truststore des Servers hinzufügen.

Symbol das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 01.12.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_enable_ssl_liberty_client_container
Dateiname: twlp_enable_ssl_liberty_client_container.html