Cette documentation présente un exemple rapide et simple permettant de mettre en œuvre Quotero avec SSL.
L'outil keytool se trouve dans le répertoire bin du JDK.
Génération du keystore serveur :
$ keytool -genkey -storepass changeit -storetype JKS -keystore server.ks -keyalg RSA -keypass changeit
Exportation du certificat serveur :
$ keytool -export -file tmp_server.cer -storepass changeit -storetype JKS -keystore server.ks
Création du truststore client :
$ keytool -import -file tmp_server.cer -storepass changeit -storetype JKS -keystore client.ts -alias serverkey -noprompt
Génération du keystore client :
$ keytool -genkey -storepass changeit -storetype JKS -keystore client.ks -keyalg RSA -keypass changeit
Exportation du certificat client :
$ keytool -export -file tmp_client.cer -storepass changeit -storetype JKS -keystore client.ks
Création du truststore serveur :
$ keytool -import -file tmp_client.cer -storepass changeit -storetype JKS -keystore server.ts -alias clientkey -noprompt
Les stores serveur (server.ks et server.ts) et client (client.ks et client.ts) doivent être copiés dans le répertoire $CATALINA_HOME de l'installation Tomcat appropriée.
Configuration du Tomcat server-side :
<Connector port="9443" scheme="https" secure="true" sslProtocol="TLS" SSLEnabled="true" clientAuth="false" maxThreads="200"
keystoreFile="D:/Servers/QuoteroServerTomcat/server.ks" keystorePass="changeit" keystoreType="JKS"
truststoreFile="D:/Servers/QuoteroServerTomcat/server.ts" truststorePass="changeit" truststoreType="JKS" />
Configuration du Tomcat client-side :
<Connector port="7443" scheme="https" secure="true" sslProtocol="TLS" SSLEnabled="true" clientAuth="false" maxThreads="200"
keystoreFile="D:/Servers/QuoteroClientTomcat/client.ks" keystorePass="changeit" keystoreType="JKS"
truststoreFile="D:/Servers/QuoteroClientTomcat/client.ts" truststorePass="changeit" truststoreType="JKS" />
Exemple de configuration de l'application cliente :
System.setProperty("javax.net.ssl.keyStore", "D:/Servers/QuoteroClientTomcat/client.ks");
System.setProperty("javax.net.ssl.keyStorePassword", "changeit");
System.setProperty("javax.net.ssl.keyStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", "D:/Servers/QuoteroClientTomcat/client.ts");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");