certificats d'importation StartCom CA dans Windows JRE
-
29-09-2019 - |
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?
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