La technique officielle est donnée sur
https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html#Prepare_the_Certificate_Keystore
Mais si on ne me l'avait pas expliqué que j'aurais certainement abandonné.
Pour commencer, il vous faut accéder à la commande keytool
si vous ne savez pas où est keytool.exe, il faut le chercher.
Pour chercher sur le disque D en powershell, vous pouvez utiliser cette commande
Get-ChildItem -Path "D:\" -Recurse -include "*keytool.exe*" | %{Write-host $_.FullName}
Lien vers le fichier : cliquez ici
Sous Linux la commande pour chercher sera du type
find / -name keytool
Lien vers le fichier : cliquez ici
Quand vous l'aurez trouvé, aller dans le répertoire qui le contient.
La commande keytool doit afficher ceci
La technique indiquée dans la doc utilise un keystore au format jks. C'est un conteneur sécurisé, un fichier peut stocker plusieurs clés privées, des certificats publics ainsi que les certificats publics d'autorités de certification.
On peut créer le keystore simplement en important le .pfx de votre site tomcat. Le fichier .pfx contient la clé publique et privée de votre site. On a vu dans l'article https://www.tutos.eu/9617 comment le faire.
Notez que le certificat public, le .crt ou .cer, n'inclut pas nécessairement les certificats publics de l'autorité de certification.
Il faudra injecter dans le keystore les certificats publics de l'autorité de certification. Voici à quoi il ressemblent :
Pour créer un fichier .pfx à partir de la clé publique et privée, on peut adapter cette commande openssl
openssl.exe pkcs12 -export -in nommachine.cer -inkey nommachine.key -out nommachine.pfx
Lien vers le fichier : cliquez ici
Quand vous avez le .pfx de votre site tomcat, pour créer le keystore, adaptez cette commande. Elle vous demandera par la suite le mot du passe du fichier .pfx
Vous définissez en même temps le mot de passe du keystore. Il faut prendre soin de le noter et de le sécuriser dans un keepass par exemple.
keytool -importkeystore -deststorepass motdepassedukeystore -destkeystore D:\keystore.jks -srckeystore D:\moncertificat.pfx -srcstoretype PKCS12
Lien vers le fichier : cliquez ici
Ajouter ensuite dans le keystore les certificats publiques de votre autorité de certification
keytool -import -alias rootca -keystore D:\keystore.jks -trustcacerts -file "D:\rootca.cer" -storepass motdepassedukeystore
keytool -import -alias subca -keystore D:\keystore.jkss -trustcacerts -file "D:\subca.cer" -storepass motdepassedukeystore
Lien vers le fichier : cliquez ici
Pour voir ce que contient votre keystore, cad les certificats publiques et la clé privée, vous pouvez utiliser cette commande
keytool -list -v -keystore D:\keystore.jks
Lien vers le fichier : cliquez ici
Pour effacer si nécessaire un certificat du keystore, on le désigne par son alias en utilisant cette commande
keytool -delete -alias alias_a_effacer -keystore D:\keystore.jks
Lien vers le fichier : cliquez ici
Maintenant que l'on a créé le keystore et qu'on y a placé le certificat du site tomcat avec les certificats publiques de votre autorité de certification, il faut déclarer ce keystore.jks dans le fichier de configuration de tomcat,
cad dans server.xml
Indiquez l'emplacement du keystore avec son mot de passe ainsi que celui du pfx en adaptant ce bloc :
<Connector
connectionTimeout="20000"
port="8443"
protocol="HTTP/1.1" SSLEnabled="true" scheme="https"
keystoreFile="conf/keystore.jks"
keystorePass="motdepassedukeystore"
keyPass="motdepassedu_pfx"
clientAuth="false" sslProtocol="TLS"
/>
Lien vers le fichier : cliquez ici
On peut aussi mettre en place une redirection du http vers le https avec ce bloc :
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Lien vers le fichier : cliquez ici
J'ai appris plus tard qu'on pouvait se passe d'un keystore et pointer directement sur un fichier pfx.
Exemple :
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" maxHttpHeaderSize="65536" URIEncoding="UTF-8"
scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
keystoreType="PKCS12"
keystoreFile="/opt/tomcat/conf/monfichier.pfx"
keystorePass="lemotdepasse" />
Lien vers le fichier : cliquez ici
Article(s) en relation(s)