我有一个Java应用程序访问使用StartCom SSL证书的服务 . 为了实现这一点,我需要将StartCom CA证书添加到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
(来自this script)
但是,相同的命令(适当调整)在Windows上不起作用 . 我明白了:
keytool error: java.lang.RuntimeException: Usage error, trustcacerts is not a legal command
如何使它工作?
4 回答
这是一个简单的错字 . 在转换命令时,我忘记了“trustcacerts”之前的破折号 . :(
在Mac OS X Mavericks 10.9上我这样做了:
我总是创建一个我稍后删除的tmp目录,但你不必:
然后下载证书:
获取Java主页:
使用keytool安装它:
删除-trustcacerts
是的,
-trustcacerts
是正确的语法 .但是要使链接脚本在Cygwin下工作,您需要从所有
keytool
行中删除sudo
- 在Cygwin中sudo
不可用 .