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?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top