2010-11-29 98 views
14

我有一个Java应用程序访问使用StartCom SSL证书的服务。为此,我需要将StartCom CA证书添加到Java的信任库,因为它们尚未默认存在。我已经成功地做到了在Linux上使用这些命令在Windows中导入StartCom CA证书JRE

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 

(从this script

同样的命令(适当调整),不能在Windows然而工作。我得到:

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

如何使它工作?

+0

嗨,我仍然得到错误.. 如何解决它。苛刻的拉瓦尔。 – 2010-12-06 05:22:05

回答

5

这是一个简单的错字。在转换命令时,我在“trustcacerts”之前忘记了一个短划线。 :(

0

删除-trustcacerts

0

是,-trustcacerts是正确的语法

但对于链接脚本在Cygwin下工作,你需要从所有keytool行删除sudo - 。sudo是在Cygwin中不可用

2

在Mac OS X小牛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 

使用密钥工具来安装它:

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