web-dev-qa-db-fra.com

Erreur SSL TOMCAT: le nom d'alias n'identifie pas une entrée de clé

J'essaie de configurer Tomcat 6 en utilisant SSL avec un certificat qui nous est fourni (par quelqu'un). Mon expérience SSL ne dure que quelques jours, mais je dois encore configurer la chose sacrément.

On m'a fourni un certificat (téléchargé depuis IE) au format DER.

Ensuite, j'ai créé un magasin de clés:

 keytool -import -alias btIEgen -file MyCompany.der -keystore b2b.keystore 

Dis que j'ai utilisé "mot de passe" pour le mot de passe

J'ai configuré cela dans Tomcat's server.xml dans la section SSL:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    keystoreFile="webapps/b2b.keystore" keystorePass="password" keyAlias="btIEgen" 
    clientAuth="false" sslProtocol="TLS" />

Au démarrage de Tomcat, je reçois l'erreur sacrément.

J'ai ensuite fait une keytool -list sur b2b.keystore, et j'ai remarqué que l'alias est en minuscules, donc après la mise à jour de server.xml et le redémarrage, j'obtiens toujours la même erreur, mais pour l'alias minuscule.

Ensuite, je pensais que j'avais peut-être besoin d'une autorité de certification racine. J'ai donc recréé le b2b.keystore comme suit:

 keytool -import -alias root -file myCA.cer -keystore b2b.keystore 

Ensuite, j'ai réexécuté ma commande keytool contre MyCompany.der

Mais j'obtiens toujours la même erreur, que l'alias n'identifie pas une entrée de clé.

Je me demande si je fais une erreur fondamentale dans la configuration de Tomcat, ou si cette chose devrait fonctionner et je fais juste une erreur stupide et imprudente?

Tout conseil serait grandement apprécié.

26
udeleng

Ce dont Tomcat a besoin, c'est du certificat et de sa clé privée. Le certificat est une information publique que n'importe quel utilisateur peut voir, mais la clé privée ne doit être que la vôtre: c'est ce qui empêche les autres de lancer un site Web avec votre certificat. En important MyCompany.der, vous importez uniquement le certificat.

Vous devez d'abord trouver où se trouve votre clé privée. (Normalement, même la personne qui vous a délivré le certificat ne devrait pas connaître sa clé privée.)

La clé privée peut avoir été générée dans votre navigateur pendant le processus de demande de certificat. Essayez de voir si vous pouvez exporter dans .p12/.pfx (Format PKCS # 12): cela devrait également regrouper la clé privée si elle existe. Si tel est le cas, vous devriez pouvoir utiliser le fichier résultant comme fichier de clés directement en utilisant le PKCS12 type de magasin: keystoreFile="store.pfx" keystorePass="password" keystoreType="PKCS12" (vous n'aurez probablement pas besoin d'un alias de clé, car il n'y aura qu'une seule entrée de clé).

34
Bruno