Импорт сертификатов StartCom CA в Windows JRE - PullRequest
14 голосов
/ 29 ноября 2010

У меня есть приложение Java, которое обращается к службе, которая использует SSL-сертификат StartCom.Чтобы это работало, мне нужно добавить сертификаты CA StartCom в хранилище доверенных сертификатов Java, поскольку они по умолчанию еще не добавлены.Я успешно сделал это в Linux, используя эти команды

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

этот скрипт )

Та же самая команда (адаптированная соответствующим образом) не работает в Windowsтем не мение.Я получаю:

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

Как заставить это работать?

Ответы [ 4 ]

5 голосов
/ 29 ноября 2010

Это была простая опечатка. При преобразовании команды я забыл тире перед "trustcacerts". (

2 голосов
/ 08 января 2014

В Mac OS X Mavericks 10.9 я сделал это:

Я всегда создаю каталог tmp, который я удаляю позже, но вам не нужно:

mkdir ~/tmp
cd ~/tmp

Затем скачайте сертификаты:

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

Получите ваш дом Java:

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

Используйте keytool для его установки:

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
0 голосов
/ 01 июня 2012

Да, -trustcacerts - правильный синтаксис.

Но для работы связанного скрипта в Cygwin необходимо удалить sudo из всех keytool строк - sudo недоступен в Cygwin.

0 голосов
/ 29 ноября 2010

Удалить -trustcacerts

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...