2010-11-29 40 views
14

J'ai une application Java accédant à un service qui utilise un certificat SSL StartCom. Pour que cela fonctionne, j'ai besoin d'ajouter les certificats CA StartCom au fichier de clés certifiées de Java, car ils ne sont pas encore là par défaut. Je l'ai fait avec succès que sur linux en utilisant ces commandesImporter des certificats CA StartCom sous Windows JRE

sudo keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt -alias startcom.ca -file ca.crt 
sudo keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt -alias startcom.ca.sub.class1 -file sub.class1.server.ca.crt 
sudo keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt -alias startcom.ca.sub.class2 -file sub.class2.server.ca.crt 
sudo keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt -alias startcom.ca.sub.class3 -file sub.class3.server.ca.crt 
sudo keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt -alias startcom.ca.sub.class4 -file sub.class4.server.ca.crt 

(De this script)

ne fonctionne pas sous Windows mais la même commande (adapté de façon appropriée). Je reçois:

keytool error: java.lang.RuntimeException: Usage error, trustcacerts is not a legal command 

Comment le faire fonctionner?

+0

Salut Je reçois toujours l'erreur .. comment le résoudre. Harsh Raval. –

+0

Vous oubliez de mentionner que le plus souvent vous avez deux magasins de clés Java sous Windows: un pour le JDK et un autre pour le JRE public sous C: \ Program Files. Dans ce cas, vous devez ajouter les certificats aux deux magasins. –

Répondre

5

C'était une simple faute de frappe. En convertissant la commande j'ai oublié un tiret avant "trustcacerts". :(

0

Supprimer -trustcacerts

0

Oui, -trustcacerts est la bonne syntaxe

Mais pour le script lié à travailler sous Cygwin vous devez supprimer sudo de toutes keytool lignes -.. sudo est disponible dans Cygwin

2

Sous Mac OS X Mavericks 10,9 Je l'ai fait:

Je fais toujours un répertoire tmp que je supprime plus tard, mais vous ne devez pas:

mkdir ~/tmp 
cd ~/tmp 

télécharger ensuite les certs:

curl http://www.startssl.com/certs/ca.crt -O 
curl http://www.startssl.com/certs/sub.class1.server.ca.crt -O 
curl http://www.startssl.com/certs/sub.class2.server.ca.crt -O 
curl http://www.startssl.com/certs/sub.class3.server.ca.crt -O 
curl http://www.startssl.com/certs/sub.class4.server.ca.crt -O 

Obtenez votre maison Java:

$ /usr/libexec/java_home 
/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home 

Utilisez keytool pour l'installer:

sudo keytool -import -trustcacerts -keystore /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/securitycacerts -storepass changeit -noprompt -alias startcom.ca -file ca.crt 

sudo keytool -import -trustcacerts -keystore /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/security/cacerts -storepass changeit -noprompt -alias startcom.ca.sub.class1 -file sub.class1.server.ca.crt 

sudo keytool -import -trustcacerts -keystore /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/securitycacerts -storepass changeit -noprompt -alias startcom.ca.sub.class2 -file sub.class2.server.ca.crt 

sudo keytool -import -trustcacerts -keystore /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/securitycacerts -storepass changeit -noprompt -alias startcom.ca.sub.class3 -file sub.class3.server.ca.crt 

sudo keytool -import -trustcacerts -keystore /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/securitycacerts -storepass changeit -noprompt -alias startcom.ca.sub.class4 -file sub.class4.server.ca.crt