Sichere Installation zum Abrufen des Clientunterzeichners in SSL

Jedes Profil in der Umgebung von WebSphere Application Server enthält ein eindeutiges verkettetes Zertifikat, das mit einem eindeutigen Stammzertifikat mit langer Laufzeit signiert ist, das bei der Erstellung des Profils erstellt wird. Dieses Zertifikat ersetzt das selbst signierte Standardzertifikat, das mit WebSphere Application Server Version 6.1 bereitgestellt wird, und das Standardpseudozertifikat, das mit den Releases vor Version 6.1 geliefert wird. Wenn ein Profil in einen Deployment Manager eingebunden wird, wird das Stammsignierzertifikat dem allgemeinen Truststore für die Zelle hinzugefügt, woraufhin alle Zertifikate anerkannt werden, die mit diesem Stammzertifikat unterschrieben sind.

Bewährtes Verfahren Bewährtes Verfahren: Verwenden Sie die Pseudo-Keystore- und -Truststore-Dateien, auf die in diesem Artikel verwiesen wird, nicht in einer Produktionsumgebung. Diese Dateien enthalten dieselben Zertifikate und werden überall, daher sind sie nicht sicher. Ändern Sie außerdem die Kennwörter für den Keystore und den Truststore, damit nicht das Standardkennwort WebAS verwendet wird. bprac

Standardmäßig vertrauen Clients in der Umgebung von WebSphere Application Server keinen Servern aus anderen Profilen, weil sie nicht den Stammunterzeichner für diese Server haben. Für den Aufbau des Vertrauens zwischen Clients und diesen Servern können Sie einiges tun:

  1. Aktivieren Sie die Systemanfrage zum Unterzeichneraustausch, damit der Unterzeichner beim Verbindungsversuch akzeptiert wird.
  2. Führen Sie das Dienstprogramm retrieveSigners aus, damit die Unterzeichner vom anderen System vor dem Verbindungsaufbau heruntergeladen werden.
  3. Kopieren Sie die Datei trust.p12 aus dem Verzeichnis /config/cells/<Zellenname>/nodes/<Knotenname> des Serverprofils in das Verzeichnis /etc des Clients. Aktualisieren Sie bei neuem Dateinamen und neuem Kennwort die SSL-Konfiguration entsprechend. Durch das Kopieren der Datei steht dem Client eine Datei trust.p12 mit allen Unterzeichnern von Servern in dieser Zelle zur Verfügung. Möglicherweise müssen Sie diesen Schritt auch für ältere Clients ausführen, die noch die Datei DummyClientTrustFile.jks verwenden. In diesem Fall müssen Sie vielleicht auch die Datei sas.client.props oder soap.client.props ändern, damit diese den neuen Truststore, das neue Truststore-Kennwort und den Truststore-Typ (PKCS12) widerspiegelt.
Wenn Clients einen internen Unterzeichneraustausch ausführen sollen, müssen Sie die Datei ssl.client.props in der SSL-Konfiguration mit der Eigenschaft "com.ibm.SSL.ConfigURL" angeben. Für verwaltete Clients geschieht dies automatisch. Unterzeichner werden entweder während der Verbindung als intern oder während der Laufzeit als extern bezeichnet. Sie müssen außerdem das Attribut com.ibm.ssl.enableSignerExchangePrompt auf true setzen.
Tipp: Wenn Serverzertifikate, die kurz vor dem Verfallsdatum sind, ersetzt werden sollen, können Sie einen Verfallsmonitor für Zertifikate konfigurieren. Im Artikel Überwachung des Zertifikatsablaufs in SSL können Sie nachlesen, wie Clients den neuen Unterzeichner aus der Konfiguration abrufen können.

Systemanfrage zum Unterzeichneraustausch zum Abrufen von Unterzeichnern für Clients verwenden

Wenn der Client noch keinen Unterzeichner für die Verbindung zu einem Prozess hat, können Sie die Systemanfrage zum Unterzeichneraustausch aktivieren. Die Anfrage für Austausch der Sicherheitssignatur wird für jedes Zertifikat und jeden Knoten einmal angezeigt. Nachdem der Unterzeichner für den Knoten hinzugefügt wurde, bleibt er im Client-Truststore. Der folgende Beispielcode zeigt die Systemanfrage zum Unterzeichneraustausch, mit der ein Unterzeichner von einem Client abgerufen wird: [AIX Solaris HP-UX Linux Windows][z/OS]
C:\WASX_e0540.11\AppServer\profiles\AppSrv01\bin\serverStatus -all ADMU0116I: Die Toolinformationen werden in der Datei
C:\WASX_e0540.11\AppServer\profiles\AppSrv01\logs\serverStatus.log protokolliert ADMU0128I: Das Tool wird mit dem
Profil AppSrv01 gestartet ADMU0503I:
Der Serverstatus für alle Server wird abgerufen. ADMU0505I: In der Konfiguration gefundene Server:
ADMU0506I: Servername: dmgr
*** AUFFORDERUNG ZUM AUSTAUSCH DES SSL-UNTERZEICHNERS *** Der SSL-Unterzeichner vom Zielhost 192.168.1.5 wurde nicht im Truststore
C:\WebSphere\AppServer\profiles\AppSrv01\etc\trust.p12 gefunden.

Es folgen die Unterzeichnerinformationen (vergewissern Sie sich, dass der Digest-Wert mit dem auf dem Server angezeigten Wert übereinstimmt):
Subject DN:    CN=myhost.austin.ibm.com, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US
Issuer DN:     CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, 
O=IBM, C=US
Seriennummer: 2510775664686266 Verfallsdatum Thu Feb 19 15:58:49 CST 2009
SHA-1-Digest:  2F:96:70:23:08:58:6F:66:CD:72:61:E3:46:8B:39:D4:AF:62:98:C3
MD5-Digest: 04:53:F8:20:A2:8A:6D:31:D0:1D:18:90:3D:58:B9:9D

Subject DN: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell,
OU=myhostNode01, O=IBM, C=US Issuer DN:  CN=myhost.austin.ibm.com, OU=Root
Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Seriennummer:
2510773295548841 Expires: Tue Feb 15 15:58:46 CST 2028 SHA-1 Digest:
2F:96:70:23:08:58:6F:66:CD:72:61:E3:46:8B:39:D4:AF:62:98:C3
MD5-Digest: 04:53:F8:20:A2:8A:6D:31:D0:1D:18:90:3D:58:B9:9D
Add signer to the truststore now? (y/n) y A retry of the request may need to occur. ADMU0508I: Deployment Manager "dmgr" ist GESTARTET. 
[IBM i]
/QIBM/UserData/WebSphere/AppServer/V85/ND/profiles/dmgr/bin/serverStatus -all ADMU0116I:
Die Toolinformationen werden in der Datei
/QIBM/UserData/WebSphere/AppServer/V85/ND/profiles/dmgr/logs/serverStatus.log ADMU0128I:
Das Tool wird mit dem Profil dmgr gestartet. ADMU0503I:
Der Serverstatus für alle Server wird abgerufen. ADMU0505I: In der Konfiguration gefundene Server:
ADMU0506I: Servername:
dmgr  *** AUFFORDERUNG ZUM AUSTAUSCH DES SSL-UNTERZEICHNERS *** Der SSL-Unterzeichner vom Zielhost 192.168.1.5 wurde
nicht im Truststore gefunden
/QIBM/UserData/WebSphere/AppServer/V85/ND/profiles/dmgr/etc/trust.p12.
Es folgen die Unterzeichnerinformationen (vergewissern Sie sich, dass der Digest-Wert mit dem auf dem Server angezeigten Wert übereinstimmt):
Subject DN:    CN=myhost.austin.ibm.com, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US
Issuer DN:     CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, 
O=IBM, C=US
Seriennummer: 2510775664686266 Verfallsdatum Thu Feb 19 15:58:49 CST 2009
SHA-1-Digest:  2F:96:70:23:08:58:6F:66:CD:72:61:E3:46:8B:39:D4:AF:62:98:C3
MD5-Digest: 04:53:F8:20:A2:8A:6D:31:D0:1D:18:90:3D:58:B9:9D

Subject DN: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell,
OU=myhostNode01, O=IBM, C=US Issuer DN:  CN=myhost.austin.ibm.com, OU=Root
Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Seriennummer:
2510773295548841 Expires: Tue Feb 15 15:58:46 CST 2028 SHA-1 Digest:
2F:96:70:23:08:58:6F:66:CD:72:61:E3:46:8B:39:D4:AF:62:98:C3

MD5-Digest: 04:53:F8:20:A2:8A:6D:31:D0:1D:18:90:3D:58:B9:9D

Add signer to the truststore now? (y/n) y A retry of the request may need to occur. ADMU0508I: Deployment Manager "dmgr" ist GESTARTET. 
[IBM i]
/QIBM/UserData/WebSphere/AppServer/V85/profiles/default/bin/serverStatus -all ADMU0116I:
Die Toolinformationen werden in der Datei
/QIBM/UserData/WebSphere/AppServer/V85/profiles/default/logs/serverStatus.log ADMU0128I:
Das Tool wird mit dem Profil default gestartet. ADMU0503I: Der Serverstatus für alle Server wird abgerufen.
ADMU0505I: In der Konfiguration gefundene Server.
ADMU0506I: Servername: server1
*** AUFFORDERUNG ZUM AUSTAUSCH DES SSL-UNTERZEICHNERS *** Der SSL-Unterzeichner vom Zielhost 192.168.1.5
wurde nicht im Truststore gefunden
/QIBM/UserData/WebSphere/AppServer/V85/profiles/default/etc/trust.p12.  
Es folgen die Unterzeichnerinformationen
(vergewissern Sie sich, dass der Digest-Wert mit dem auf dem Server angezeigten Wert übereinstimmt):
Subject DN:    CN=myhost.austin.ibm.com, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Issuer DN:     CN=myhost.austin.ibm.com, O=IBM, C=US
Seriennummer: 2510775664686266 Verfallsdatum Thu Feb 19 15:58:49 CST 2009
SHA-1-Digest:  2F:96:70:23:08:58:6F:66:CD:72:61:E3:46:8B:39:D4:AF:62:98:C3
MD5-Digest: 04:53:F8:20:A2:8A:6D:31:D0:1D:18:90:3D:58:B9:9D

Subject DN: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell,
OU=myhostNode01, O=IBM, C=US Issuer DN:  CN=myhost.austin.ibm.com, OU=Root
Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Seriennummer:
2510773295548841 Expires: Tue Feb 15 15:58:46 CST 2028 SHA-1 Digest:
2F:96:70:23:08:58:6F:66:CD:72:61:E3:46:8B:39:D4:AF:62:98:C3
MD5-Digest: 04:53:F8:20:A2:8A:6D:31:D0:1D:18:90:3D:58:B9:9D

Add signer to the truststore now? (y/n) y A retry of the request may need to occur.
ADMU0508I: Application Manager "server1" ist GESTARTET. 
Im Artikel Befehl retrieveSigners erfahren Sie, wie Sie diesen Prozess automatisieren können.

Wenn Sie aufgefordert werden, den Unterzeichner zu akzeptieren, kommt es möglicherweise zu einer Zeitlimitüberschreitung und zu einer Unterbrechung der Verbindung. Aus diesem Grund wird nach Ihrer Reaktion auf die Aufforderung die Nachricht "A retry of the request may need to occur." angezeigt. Die Nachricht informiert den Benutzer darüber, dass er die Anforderung ggf. erneut übergeben muss. Dieses Problem sollte nicht häufig auftreten, kann aber bei einigen Protokollen öfter vorkommen als bei anderen.

Die Anforderung muss möglicherweise wiederholt werden, wenn das zulässige Socket-Zeitlimit beim Warten auf eine Antwort auf die Eingabeaufforderung überschritten wird. Wenn eine Wiederholung erforderlich ist, beachten Sie, dass die Eingabeaufforderung nicht erneut angezeigt wird, wenn (j) eingegeben wird, was bedeutet, dass der Unterzeichner dem Truststore bereits hinzugefügt wurde.

Prüfen Sie Angabe "SHA-1 digest". Dies ist die Signatur des vom Server gesendeten Zertifikats. Wenn Sie sich das Zertifikat auf dem Server anschauen, muss es dieselbe Angabe für "SHA-1 digest" enthalten.

Wenn die Systemanfrage nicht angezeigt werden soll, können Sie sie inaktivieren. Führen Sie dazu das Dienstprogramm retrieveSigners aus, um alle Unterzeichner für eine bestimmte Zelle zu empfangen. Wenn Sie in diesem Clientscript einen allgemeinen Truststore referenzieren, können Sie die Unterzeichner aus jedem fernen Keystore in einen beliebigen lokalen Keystore herunterladen oder hochladen. Nähere Informationen finden Sie im Artikel Standardkonfiguration mit verkettetem Zertifikat in SSL.

Dienstprogramm retrieveSigners zum Herunterladen von Unterzeichnern für Clients verwenden

Mit dem Dienstprogramm retrieveSigners können Sie alle Unterzeichner aus dem fernen Keystore für einen angegebenen Client-Keystore abrufen.

In der Regel wird der ferne Keystore CellDefaultTrustStore referenziert.

Der Truststore enthält die Unterzeichner, die dem Client ermöglichen, Verbindungen zu seinen Prozessen herzustellen. Das Dienstprogramm retrieveSigners kann auf jeden Keystore in der Zielkonfiguration innerhalb des Geltungsbereichs des Zielprozesses zeigen und die Unterzeichner (nur Zertifikateinträge) in jeden Client-Keystore in der Datei ssl.client.props herunterladen.
Der folgende Beispielcode zeigt das Dienstprogramm retrieveSigners in einer Deployment-Manager-Umgebung. [AIX Solaris HP-UX Linux Windows][z/OS]
C:\WASX_e0540.11\AppServer\profiles\AppSrv01\bin\retrieveSigners.bat CellDefaultTrustStore 
ClientDefaultTrustStore -autoAcceptBootstrapSigner  CWPKI0308I: Unterzeichneralias
"CN=myhost.austin.ibm.com,
O=IBM, C=US" wurde dem lokalen Keystore "ClientDefaultTrustStore" mit dem folgenden SHA-Digest hinzugefügt:
digest: 91:A1:A9:2D:F2:7D:70:0F:04:06:73:A3:B4:A4:9C:56:9D:A8:A3:BA  CWPKI0308I:
Unterzeichneralias "default" wurde dem lokalen Keystore
"ClientDefaultTrustStore" mit dem folgenden SHA-Digest hinzugefügt:
40:20:CF:BE:B4:B2:9C:F0:96:4D:EE:E5:14:92:9E:37:8D:51:A5:47
[IBM i]
/QIBM/UserData/WebSphere/AppServer/V85/ND/profiles/dmgr/bin retrieveSigners CellDefaultTrustStore
ClientDefaultTrustStore -autoAcceptBootstrapSigner  CWPKI0308I: Unterzeichneralias "CN=myhost.austin.ibm.com,
O=IBM, C=US" wurde dem lokalen Keystore "ClientDefaultTrustStore" mit dem folgenden SHA-Digest
hinzugefügt: 91:A1:A9:2D:F2:7D:70:0F:04:06:73:A3:B4:A4:9C:56:9D:A8:A3:BA  CWPKI0308I: Unterzeichneralias
"default" wurde dem lokalen Keystore
"ClientDefaultTrustStore" mit dem folgenden SHA-Digest hinzugefügt: 40:20:CF:BE:B4:B2:9C:F0:96:4D:EE:E5:14:
92:9E:37:8D:51:A5:47
Verwenden Sie die Option –autoAcceptBootstrapSigner, wenn WebSphere Application Server die Unterzeichner für administrative Verbindungen automatisch abrufen und akzeptieren soll. Die Angabe 'SHA-1 digest' wird ausgegeben, während der Unterzeichner hinzugefügt wird. Sie können den Digest-Wert somit nach Abschluss der Operation prüfen.

Unterzeichner für Clients und Server eines früheren Release anfordern

Anmerkung: Wenn ein Client eines älteren Release als Version 7.0 eine Verbindung zum aktuellen Release herstellt, muss er für einen erfolgreichen Handshake Unterzeichner anfordern. Clients, die ältere Releases von WebSphere Application Server verwenden, können Unterzeichner nicht so leicht wie im aktuellen Release anfordern. Sie können den allgemeinen Truststore des Deployment Manager auf Ihren älteren Client oder Server kopieren und dann die SSL-Konfiguration so modifizieren, dass sie direkt diesen Truststore referenziert. Dieser allgemeine Truststore vom Typ PKCS12 befindet sich im Verzeichnis /config/cells/<Zellenname>/nodes/<Knotenname> des Konfigurationsrepositorys. Das Standardkennwort lautet WebAS.

Führen Sie die folgenden Schritte aus, wenn Sie alle Unterzeichner der Zelle in nur einer Keystore-Datei trust.p12 zusammenstellen möchten:

  1. Kopieren Sie die Keystore-Datei trust.p12 auf den Server und replizieren Sie sie auf dem Client. Der Client referenziert die Datei direkt in den Dateien sas.client.props und soap.client.props, die die SSL-Eigenschaften für frühere Releases angeben.
  2. Ändern Sie das Kennwort für den clientseitigen Keystore. Es muss mit dem Standardnamen der Zelle übereinstimmen, die dem kopierten Keystore zugeordnet ist.
  3. Ändern Sie in der Clientkonfiguration den Standard-Keystore-Typ für die Datei trust.p12 in PKCS12.

Die folgenden Codebeispiele zeigen den Stand vor und nach den erforderlichen Änderungen.

Standard-SSL-Konfiguration von sas.client.props für ein früheres Release [AIX Solaris HP-UX Linux Windows][z/OS]
com.ibm.ssl.protocol=SSL com.ibm.ssl.keyStore=file\:/// C\:/SERV1_601_0208/AppServer/profiles/AppSrv01/etc/
DummyClientKeyFile.jks com.ibm.ssl.keyStorePassword={xor}CDo9Hgw\= com.ibm.ssl.keyStoreType=JKS 
com.ibm.ssl.trustStore=
file\:/// C\:/SERV1_601_0208/AppServer/profiles/AppSrv01/etc/DummyClientTrustFile.jks
com.ibm.ssl.trustStorePassword={xor}CDo9Hgw\=
com.ibm.ssl.trustStoreType=JKS
[IBM i]
com.ibm.ssl.protocol=SSL com.ibm.ssl.keyStore=/QIBM/UserData/WebSphere/AppServer/V85/ND/profiles/
dmgr/etc/DummyClientKeyFile.jks
com.ibm.ssl.keyStorePassword={xor}CDo9Hgw\= com.ibm.ssl.keyStoreType=JKS com.ibm.ssl.trustStore=
/QIBM/UserData/WebSphere/
AppServer/V85/ND/profiles/dmgr/etc/DummyClientTrustFile.jks com.ibm.ssl.trustStorePassword={xor}CDo9Hgw\
= com.ibm.ssl.trustStoreType=JKS
[IBM i]
com.ibm.ssl.protocol=SSL com.ibm.ssl.keyStore=/QIBM/UserData/WebSphere/AppServer/V85/Base/
profiles/default/
etc/DummyClientKeyFile.jks
com.ibm.ssl.keyStorePassword={xor}CDo9Hgw\= com.ibm.ssl.keyStoreType=JKS com.ibm.ssl.trustStore=
/QIBM/UserData/WebSphere/AppServer/
V85/Base/profiles/default/etc/DummyClientTrustFile.jks com.ibm.ssl.trustStorePassword={xor}CDo9Hgw\=
com.ibm.ssl.trustStoreType=JKS
Erforderliche SSL-Konfigurationsänderungen an der allgemeinen Truststore-Datei im Verzeichnis /etc des Clients[AIX Solaris HP-UX Linux Windows][z/OS]
com.ibm.ssl.protocol=SSL com.ibm.ssl.keyStore=file\:/// C\:/SERV1_601_0208/AppServer/profiles/AppSrv01/etc/
DummyClientKeyFile.jks com.ibm.ssl.keyStorePassword={xor}CDo9Hgw\= com.ibm.ssl.keyStoreType=JKS 
com.ibm.ssl.trustStore=file\:/// C\:/SERV1_601_0208/AppServer/profiles/AppSrv01/etc/trust.p12
com.ibm.ssl.trustStorePassword=myhostNode01Cell com.ibm.ssl.trustStoreType=PKCS12
[IBM i]
com.ibm.ssl.protocol=SSL com.ibm.ssl.keyStore=/QIBM/UserData/WebSphere/AppServer/V85/ND/profiles/dmgr/etc/
DummyClientKeyFile.jks com.ibm.ssl.keyStorePassword={xor}CDo9Hgw\= com.ibm.ssl.keyStoreType=JKS 
com.ibm.ssl.trustStore=/QIBM/UserData/WebSphere/AppServer/V85/ND/profiles/dmgr/etc/trust.p12
com.ibm.ssl.trustStorePassword=myhostNode01Cell com.ibm.ssl.trustStoreType=PKCS12
[IBM i]
com.ibm.ssl.protocol=SSL com.ibm.ssl.keyStore=/QIBM/UserData/WebSphere/AppServer/V85/Base/
profiles/default/etc/
DummyClientKeyFile.jks com.ibm.ssl.keyStorePassword={xor}CDo9Hgw\= com.ibm.ssl.keyStoreType=JKS 
com.ibm.ssl.trustStore=/QIBM/UserData/WebSphere/AppServer/V85/Base/profiles/default/etc/trust.p12
com.ibm.ssl.trustStorePassword=myhostNode01Cell com.ibm.ssl.trustStoreType=PKCS12
Tipp: Zum Verschlüsseln des Kennworts können Sie das Script PropsFilePasswordEncoder ausführen, das sich im Verzeichnis /bin befindet.

Sie können diese Änderungen auch in der Datei soap.client.props vornehmen und an Stelle der Datei DummyClientKeyFile.jks die Datei key.p12 angeben. Sie müssen aber auch die Werte für keyStorePassword und keyStoreType an die in der Standarddatei key.p12 anpassen.

In älteren Releases als WebSphere Application Server Version 7.0 müssen Sie die SSL-Konfiguration auf dem Server bearbeiten, um den allgemeinen Truststore zu ersetzen. Die vom Server verwendete Datei trust.p12 muss für Verbindungen zwischen Servern mit älterem Releasestand auch den Unterzeichner des Standardpseudozertifikats enthalten. Möglicherweise müssen Sie das Standardzertifikat manuell aus der Datei DummyServerKeyFile.jks extrahieren und es dann in die zur Konfiguration hinzugefügte Datei trust.p12 importieren.


Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



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