Bonjour,
voilà quelques jours que je rencontre un petit soucis avec les certifications ssl dans tomcat. Je souhaiterais après avoir généré en dehors du keytool un certificat ssl et une clé privée pouvoir l'importer dans le keytool java pour ensuite l'utiliser dans tomcat.
J'ai seulement deux fichiers server1.crt et server1.key.
En utilisant cette commande :
keytool -import -trustcacerts -alias tomcat -file server1.crt -keystore mykeystore.jks
J'obtiens bien une entrée dans mon keytool : keytool -list -v -keystore mykeystore.jks
1 2 3 4 5 6 7 8 9 10
| Entrez le mot de passe du fichier de clés :
Type de fichier de clés : JKS
Fournisseur de fichier de clés : SUN
Votre fichier de clés d'accÞs contient 1 entrée
tomcat, 20 févr. 2015, trustedCertEntry,
Empreinte du certificat (SHA1) : DC:D9:0F:DC:54:B8:DB:A3:C0:CB:2B:1F:62:B0:8C:B9
:BC:B8:22:65 |
Ensuite dans le fichier de configuration server.xml j'active le connecteur https :
1 2 3 4 5
|
<Connector protocol="org.apache.coyote.http11.Http11Protocol"
port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true"
keyAlias="tomcat" keystoreFile="c:/mykeystore.jks" keystorePass="******"
clientAuth="false" sslProtocol="TLS"/> |
Mais j'obtiens cette erreur en lancant tomcat :
1 2 3 4 5 6 7 8 9 10 11 12 13
|
Caused by: java.io.IOException: Le nom alias tomcat n'identifie pas une entrée de clef
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:579)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:517)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:462)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:209)
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:398)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:646)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
... 13 more |
Je tiens à préciser qu'en créant un keystore de manière classique et en générant un certificat avec cette commande
keytool -genkey -alias tomcat -keyalg RSA -keystore mykeystore.jks
Cela fonctionne correctement mais ce n'est pas ce que je veux faire. Je veux pouvoir utiliser un certificat auto signé généré en dehors du keytool et l'utiliser avec tomcat. Si quelqu"un pouvait m'éclairer ça serait vraiment sympa
Merci d'avance.
Partager