Question

J'ai une application Java d'accéder à un service qui utilise un certificat SSL StartCom. Pour que cela fonctionne, je dois ajouter les StartCom CA certs au truststore Java, parce qu'ils ne sont pas là par défaut encore. Je l'ai fait avec succès que sur linux en utilisant ces commandes

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

( )

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

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

Comment le faire le travail?

Était-ce utile?

La solution

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

Autres conseils

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

Supprimer -trustcacerts

Oui, -trustcacerts est la bonne syntaxe.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top