École franco-maghrébine 2003 | WebServices | 13-17 octobre 2003 |
tp4a |
Modifier le WS d'authentification afin d'utiliser le protocole SSL pour faire circuler les données, ett un mécanisme d'authentification "HTTP Basic" pour faire vérifier le couple login/password par Tomcat.
Il faut tout d'abord générer votre certificat serveur.
keytool -genkey -alias tomcat -keyalg RSA -keystore server.keystore Tapez le mot de passe du Keystore : tomcat Quels sont vos prénom et nom ? [Unknown] : tomcat Quel est le nom de votre unité organisationnelle ? [Unknown] : cc Quelle est le nom de votre organisation ? [Unknown] : in2p3 Quel est le nom de votre ville de résidence ? [Unknown] : lyon Quel est le nom de votre état ou province ? [Unknown] : rhone Quel est le code de pays à deux lettres pour cette unité ? [Unknown] : fr Est-ce CN=tomcat, OU=cc, O=in2p3, L=lyon, ST=rhone, C=fr ? [non] : ouiSpécifiez le mot de passe de la clé pour <tomcat> (appuyez sur Entrée s'il s'agit du mot de passe du Keystore) :
On l'exporte dans un fichier.
keytool -export -alias tomcat -keyalg RSA -keystore server.keystore -file client.cer -storepass tomcat Certificat enregistré dans le fichier <client.cer>
On copie le fichier "server.keystore" dans $TOMCAT_HOME/conf.
On édite le fichier server.xml placé dans la configuration Tomcat ($TOMCAT_HOME/conf/server.xml).
En remplaçant :
<!-- <Connector className="org.apache.catalina.connector.http.HttpConnector" port="8443" minProcessors="5" maxProcessors="75" enableLookups="true" acceptCount="10" debug="0" scheme="https" secure="true"> <Factory className="org.apache.catalina.net.SSLServerSocketFactory" clientAuth="false" protocol="TLS"/> </Connector> -->
Par :
<Connector className="org.apache.catalina.connector.http.HttpConnector"
port="8443" minProcessors="5" maxProcessors="75"
enableLookups="true"
acceptCount="10" debug="0" scheme="https" secure="true">
<Factory className="org.apache.catalina.net.SSLServerSocketFactory"
keystoreFile="server.keystore"
keystorePass="tomcat""
clientAuth="false" protocol="TLS"/>
</Connector>
Il faut redémarrer Tomcat. On vérifie en ouvrant l'adresse "https://localhost:8443/" dans un butineur. Normalement Internet Explorer ou Mozilla vont indiquer que le certificat n'est pas certifié par un authorité de confiance valide (c'est normal, c'est vous qui venez de le créer), il faut accepter ce certificat comme correct.
On peut utiliser le client du tp3b pour tester, il faut modifier les noms de package pour créer le package tp4aclient à la place de tp3bclient.
Puis changer l'adresse du service web pour utiliser le protocole https et le port 8443.
java -Djavax.net.ssl.trustStore=tp4a/server.keystore -Djavax.net.ssl.trustStorePassword=tomcat tp4aclient/ReservationClient
On utilise le fichier keystore du serveur pour que le client accepte le certificat présenté par le serveur lors de la poignée de main SSL (ssl handshake).
École franco-maghrébine 2003 | WebServices | 13-17 octobre 2003 |