Installation sécurisée pour l'extraction des signataires client dans SSL

Chaque profil de l'environnement WebSphere Application Server contient un certificat chaîné unique signé par un certificat racine unique à durée de vie longue qui a été créé en même temps que le profil. Ce certificat remplace le certificat auto-signé par défaut qui est livré avec WebSphere Application Server version 6.1 ainsi que le certificat factice par défaut livré dans les éditions antérieures à la version 6.1. Lorsqu'un profil est fédéré vers un gestionnaire de déploiement, le signataire du certificat signataire racine est ajouté au magasin de relations de confiance commun de la cellule, établissant ainsi une relation de confiance pour tous les certificats signés par ce certificat racine.

Pratiques recommandées Pratiques recommandées: N'utilisez pas les fichiers de clés et les fichiers de clés certifiées factices qui sont référencés dans cette rubrique dans un environnement de production. Ces fichiers contiennent les mêmes certificats et sont utilisés partout, ce qui ne constitue pas un gage de sécurité. De même, modifiez les mots de passe du fichier de clés et du fichier de clés certifiées afin que ces derniers n'utilisent pas le mot de passe par défaut WebAS.bprac

Par défaut, les clients ne considèrent pas comme étant dignes de confiance les serveurs issus de profils différents dans l'environnement WebSphere Application Server. En d'autres termes, ils ne contiennent pas le signataire racine de ces serveurs. Pour établir des relations de confiance, exécutez les opérations suivantes :

  1. Activez l'invite d'échange de signataire afin d'accepter le signataire lors de la tentative de connexion.
  2. Exécutez l'utilitaire retrieveSigners pour télécharger les signataires à partir de ce système avant d'établir la connexion.
  3. Copiez le fichier trust.p12 se trouvant dans le répertoire /config/cells/<nom_cellule>/nodes/<nom_noeud> du profil de serveur vers le répertoire /etc du client. Mettez à jour la configuration SSL afin qu'elle reflète le nouveau nom de fichier et mot de passe, s'ils sont différents. Une fois que ce fichier a été copié, le client dispose d'un magasin de relations de confiance trust.p12 qui contient tous les signataires émis par les serveurs contenus dans cette cellule. De plus, il peut s'avérer nécessaire d'exécuter cette étape pour les clients de niveau antérieur qui utilisent encore le fichier DummyClientTrustFile.jks. Dans ce cas, vous pouvez être amené à modifier le fichier sas.client.props ou soap.client.props afin que le nouveau magasin de relations de confiance, le nouveau mot de passe de magasin de relations de confiance et le nouveau type de magasin de relations de confiance (PKCS12) soient pris en compte.
Pour que les clients puissent effectuer un échange de signature interne, vous devez spécifier le fichier ssl.client.props en tant que propriété com.ibm.SSL.ConfigURL dans la configuration SSL. Pour les clients gérés, cette procédure est automatique. Les signataires sont désignés comme étant internes au cours de la connexion ou externes au cours de l'exécution. Vous devez également définir l'attribut com.ibm.ssl.enableSignerExchangePrompt à la valeur true.
Conseil : Vous pouvez configurer un contrôleur d'expiration de certificat pour remplacer les certificats serveur qui arrivent presque à expiration. Pour plus d'informations sur la manière selon laquelle les clients peuvent extraire le nouveau signataire de la configuration, voir Contrôle de l'expiration des certificats dans SSL.

Utilisation de l'invite d'échange de signataire pour extraire les signataires à partir d'un client

Lorsque le client ne dispose pas encore d'un signataire pour se connecter à un processus, vous pouvez activer l'invite d'échange de signataire. L'invite d'échange de signataires s'affiche une fois pour chaque certificat unique et pour chaque noeud. Une fois que le signataire du noeud a été ajouté, il reste dans le magasin de relations de confiance du client. L'exemple de code suivante présente l'invite d'échange de signataire destinée à extraire un signataire à partir d'un client :[AIX Solaris HP-UX Linux Windows][z/OS]
C:\WASX_e0540.11\AppServer\profiles\AppSrv01\bin\serverStatus -all ADMU0116I: Tool information is being logged in file
C:\WASX_e0540.11\AppServer\profiles\AppSrv01\logs\serverStatus.log ADMU0128I: Starting tool with the 
AppSrv01 profile ADMU0503I:
Retrieving server status for all servers ADMU0505I: Servers found in configuration: 
ADMU0506I: Server name: dmgr
*** SSL SIGNER EXCHANGE PROMPT *** SSL signer from target host 192.168.1.5 is not found in truststore
C:\WebSphere\AppServer\profiles\AppSrv01\etc\trust.p12.

Here is the signer information (verify the digest value matches what is  displayed at the server):
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
Serial number: 2510775664686266 Expires:       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 Serial number:
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:
The Deployment Manager "dmgr" is STARTED
[IBM i]
/QIBM/UserData/WebSphere/AppServer/V85/ND/profiles/dmgr/bin/serverStatus -all ADMU0116I:
Tool information is being logged in file
/QIBM/UserData/WebSphere/AppServer/V85/ND/profiles/dmgr/logs/serverStatus.log ADMU0128I:
Starting tool with the dmgr profile ADMU0503I:
Retrieving server status for all servers ADMU0505I: Servers found in configuration: 
ADMU0506I: Server name:
dmgr  *** SSL SIGNER EXCHANGE PROMPT *** SSL signer from target host 192.168.1.5 is 
not found in truststore
/QIBM/UserData/WebSphere/AppServer/V85/ND/profiles/dmgr/etc/trust.p12.
Here is the signer information (verify the digest value matches what is  displayed at the server):
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
Serial number: 2510775664686266 Expires:       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 Serial number:
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: 
The Deployment Manager "dmgr" is STARTED
[IBM i]
/QIBM/UserData/WebSphere/AppServer/V85/profiles/default/bin/serverStatus -all ADMU0116I:
Tool information is being logged in file 
/QIBM/UserData/WebSphere/AppServer/V85/profiles/default/logs/serverStatus.log ADMU0128I:
Starting tool with the default profile ADMU0503I: Retrieving server status for all servers 
ADMU0505I: Servers found in
configuration: ADMU0506I: Server name: server1
*** SSL SIGNER EXCHANGE PROMPT *** SSL signer from target host 192.168.1.5 
is not found in truststore
/QIBM/UserData/WebSphere/AppServer/V85/profiles/default/etc/trust.p12.  
Here is the signer information
(verify the digest value matches what is  displayed at the server):
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
Serial number: 2510775664686266 Expires:       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 Serial number:
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: The Application Manager "server1" is STARTED
Pour automatiser ce processus, voir Commande retrieveSigners.

Lorsqu'une invite s'affiche concernant l'acceptation du signataire, un dépassement de socket peut se produire, ce qui peut entraîner la rupture de la connexion. Pour cette raison, le message "Une nouvelle tentative de la demande peut être nécessaire" s'affiche après la réponse à l'invite. Ce message indique à l'utilisateur de soumettre à nouveau la requête. Cet incident n'est généralement pas fréquent et concerne certains protocoles plus que d'autres.

Une nouvelle tentative de la requête peut être nécessaire si le socket arrive à expiration pendant qu'il attend une réponse à l''invite. Dans ce cas, notez que l'invite ne sera pas réaffichée si (y) est entré, ce qui indique que le signataire a déjà été ajouté au magasin de relations de confiance.

Vérifiez le digest SHA-1 affiché qui correspond à la signature du certificat envoyée par le serveur. Si vous consultez le certificat sur le serveur, vérifiez que le même digest SHA-1 s'affiche.

Vous pouvez désactiver l'invite afin qu'elle ne s'affiche plus ; pour cela, exécutez l'utilitaire retrieveSigners qui permet d'extraire tous les signataires d'une cellule particulière. Vous pouvez télécharger les signataires à partir d'un magasin de relations de confiance distant quelconque en référençant un magasin de relations de confiance commun avec ce script client. Pour plus d'informations, voir la rubrique relative de la configuration de certificat en chaîne par défaut dans SSLConfiguration des certificats chaînés par défaut dans SSL.

Utilisation de l'utilitaire retrieveSigners pour télécharger les signataires à partir d'un client

Vous pouvez exécuter l'utilitaire retrieveSigners pour extraire tous les signataires à partir d'un magasin de clés distant pour un magasin de relations de confiance client spécifié.

Le magasin de relations de confiance standard à référencer est CellDefaultTrustStore.

Le magasin de relations de confiance contient les signataires qui autorisent le client à se connecter à ses processus. L'utilitaire retrieveSigners peut désigner n'importe quel magasin de relations de confiance dans la configuration cible, dans la portée du processus cible, et il peut télécharger les signataires (entrées de certificat uniquement) vers n'importe quel magasin de clés du client dans le fichier ssl.client.props.
L'exemple de code suivant présente l'utilitaire retrieveSigners dans un environnement de gestionnaire de déploiement. [AIX Solaris HP-UX Linux Windows][z/OS]
C:\WASX_e0540.11\AppServer\profiles\AppSrv01\bin\retrieveSigners.bat CellDefaultTrustStore 
ClientDefaultTrustStore -autoAcceptBootstrapSigner  CWPKI0308I: Adding signer alias 
"CN=myhost.austin.ibm.com,
O=IBM, C=US" to local keystore "ClientDefaultTrustStore" with the following SHA
digest: 91:A1:A9:2D:F2:7D:70:0F:04:06:73:A3:B4:A4:9C:56:9D:A8:A3:BA  CWPKI0308I: 
Adding signer alias "default" to
local keystore "ClientDefaultTrustStore" with the following SHA digest:
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: Adding signer alias "CN=myhost.austin.ibm.com,
O=IBM, C=US" to local keystore "ClientDefaultTrustStore" with the following
SHA digest: 91:A1:A9:2D:F2:7D:70:0F:04:06:73:A3:B4:A4:9C:56:9D:A8:A3:BA  CWPKI0308I: Adding signer alias 
"default" to local keystore
"ClientDefaultTrustStore" with the following SHA digest: 40:20:CF:BE:B4:B2:9C:F0:96:4D:EE:E5:14:
92:9E:37:8D:51:A5:47
Utilisez l'option –autoAcceptBootstrapSigner pour autoriser WebSphere Application Server à extraire automatiquement le signataire et à l'accepter pour les connexions administratives. Le digest SHA-1 est imprimé tandis que le signataire est ajouté pour que vous puissiez contrôler le digest une fois l'opération terminée.

Obtention des signataires pour les clients et les serveurs à partir d'une édition précédente

Remarque : Lorsqu'un client d'une édition antérieure à la version 7.0 se connecte à l'édition en cours, il doit obtenir les signataires pour que l'établissement de la liaison puisse aboutir. Les clients qui utilisent des éditions précédentes de WebSphere Application Server ne peuvent pas obtenir les signataires aussi facilement que dans l'édition en cours. Vous pouvez copier le magasin de relations de confiance commun du gestionnaire de déploiement vers le client ou le serveur de niveau antérieur, puis redéfinir la configuration SSL afin qu'elle référence directement ce magasin de relations de confiance. Ce magasin de relations de confiance commun de type PKCS12 se trouve dans le répertoire /config/cells/<nom_cellule>/nodes/<nom_noeud> du référentiel de configuration et possède le mot de passe par défaut WebAS.

Pour connecter tous les signataires de la cellule dans un seul fichier de magasin de clés trust.p12, exécutez les étapes suivantes :

  1. Copiez le fichier de magasin de clés trust.p12 sur le serveur et répliquez-le sur le client. Le client référence le fichier directement à partir des fichiers sas.client.props et soap.client.props qui indiquent les propriétés SSL pour les éditions précédentes.
  2. Modifiez le mot de passe du magasin de clés côté client afin qu'il corresponde au nom de cellule par défaut associé au magasin de clés copié.
  3. Modifiez le type de magasin de clés par défaut pour le fichier trust.p12 en le remplaçant par PKCS12 dans la configuration du client.

Les deux exemples de code suivants présentent la configuration avant et après les modifications.

Configuration SSL par défaut de sas.client.props pour une édition précédente[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
Modifications de configuration SSL à apporter au fichier de magasin de relations de confiance commun dans le répertoire /etc du client[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
Conseil : Vous pouvez exécuter le script PropsFilePasswordEncoder situé dans le répertoire /bin pour coder le mot de passe.

Vous pouvez également apporter ces modifications dans le fichier soap.client.props et spécifier le fichier key.p12 à la place de DummyClientKeyFile.jks. Toutefois, vous devez également modifier les valeurs keyStorePassword et keyStoreType afin qu'elles correspondent à celles indiquées dans le fichier key.p12 par défaut.

Dans les éditions de WebSphere Application Server antérieures à 7.0, vous devez modifier la configuration SSL sur le serveur afin de remplacer le fichier de clés certifiées commun. Le fichier trust.p12, utilisé par le serveur, doit également contenir le signataire de certificat factice par défaut pour les connexions établies entre les serveurs à des niveaux d'édition antérieurs. Vous pouvez être amené à extraire manuellement le certificat par défaut du fichier DummyServerKeyFile.jks et à l'importer ensuite dans le fichier trust.p12 que vous avez ajouté à la configuration.


Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=csec_sslsecinstallclientsignret
Nom du fichier : csec_sslsecinstallclientsignret.html