Import StartCom CA-Zertifikate in Windows JRE
-
29-09-2019 - |
Frage
Ich habe eine Java-Anwendung Zugriff auf einen Dienst, der ein StartCom SSL-Zertifikat verwendet. Damit dies funktioniert, muss ich die StartCom CA-Zertifikate an die Java-Vertrauens hinzuzufügen, weil sie standardmäßig noch nicht da drin sind. Ich habe erfolgreich getan, dass unter Linux mit den folgenden Befehlen
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
(Aus dieses Skript )
Der gleiche Befehl (angepasst angemessen) funktioniert nicht unter Windows jedoch. Erhalte ich:
keytool error: java.lang.RuntimeException: Usage error, trustcacerts is not a legal command
Wie es funktioniert?
Lösung
Es war ein einfacher Tippfehler. Bei der Umwandlung des Befehls habe ich vergessen, einen Bindestrich vor „trustcacerts“. : (
Andere Tipps
Unter Mac OS X Mavericks 10.9 Ich tat dies:
ich immer ein tmp-Verzeichnis, dass ich später löschen, aber Sie haben nicht zu:
mkdir ~/tmp
cd ~/tmp
Dann die certs herunterladen:
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
Erhalten Sie Ihr Java-Home:
$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
Verwenden Sie keytool es zu installieren:
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
Remove -trustcacerts
Ja, -trustcacerts
ist die richtige Syntax.
Aber für die verknüpfte Skript Arbeit unter Cygwin müssen Sie sudo
aus allen keytool
Linien entfernen -. sudo
ist nicht verfügbar in Cygwin