Tomcat (SSL)
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Sujet | Configuration SSL/TLS de Tomcat |
| Voir aussi | Tomcat · Tomcat (sécurisation) |
Configuration du chiffrement SSL/TLS sur une instance Tomcat : import d'un certificat dans un keystore et exposition sur le port 443.
Importer un certificat depuis un PKCS12
openssl s_client -connect exemple.tld:443
keytool -importkeystore \
-deststorepass changeit -destkeypass changeit \
-destkeystore MyDSKeyStore.jks \
-srckeystore /root/certificat.pfx -srcstoretype PKCS12 \
-srcstorepass <mot_de_passe_certificat>
keytool -list -keystore MyDSKeyStore.jks
Connecteur HTTPS dans conf/server.xml :
<Connector port="8443" maxThreads="150" scheme="https" secure="true" SSLEnabled="true"
proxyPort="443"
keystoreFile="/opt/tomcat/MyDSKeyStore.jks"
keystorePass="changeit"
clientAuth="false" keyAlias="tomcat" sslProtocol="TLS" />
Chaîne complète depuis des PEM
openssl pkcs12 -export -in $certdir/fullchain.pem -inkey $certdir/privkey.pem \
-out $certdir/cert_and_key.p12 -name tomcat \
-CAfile $certdir/chain.pem -caname root -password pass:<motdepasse>
keytool -importkeystore -srcstorepass <motdepasse> \
-deststorepass changeit -destkeypass changeit \
-srckeystore $certdir/cert_and_key.p12 -srcstoretype PKCS12 \
-alias tomcat -keystore $keystoredir
keytool -import -trustcacerts -alias root -deststorepass changeit \
-file $certdir/chain.pem -noprompt -keystore $keystoredir
Rediriger le port 443 vers 8443
Tomcat tourne sous un utilisateur non-root et ne peut lier un port inférieur à 1024. On redirige donc.
Par iptables :
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443
Par xinetd :
yum install xinetd
chkconfig --add xinetd
# /etc/xinetd.d/tomcat
service tomcat-https
{
disable = no
flags = REUSE
wait = no
user = root
socket_type = stream
protocol = tcp
port = 443
redirect = localhost 8443
log_on_success -= PID HOST DURATION EXIT
}
service xinetd start