2010-11-29 15 views
14

Tengo una aplicación Java que accede a un servicio que utiliza un certificado SSL de StartCom. Para que esto funcione, necesito agregar los certificados de CA de StartCom al almacén de confianza de Java, porque todavía no están allí por defecto. Hemos puesto en práctica con éxito que en Linux a través de estos comandosImportar certificados CA de StartCom en Windows 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 

(De this script)

El mismo comando (adaptado de manera correcta) no funciona en Windows sin embargo. Obtengo:

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

¿Cómo hacer que funcione?

+0

Hola soy sigue recibiendo el error .. Cómo resolverlo. Harsh Raval. –

+0

Olvidó mencionar que la mayoría de las veces tiene dos almacenes de claves Java en Windows: uno para el JDK y otro para el JRE público en 'C: \ Program Files'. En este caso, debe agregar los certs a ambas tiendas. –

Respuesta

5

Fue un error simple. Al convertir el comando, olvidé un guion antes de "trustcacerts". :(

0

Eliminar -trustcacerts

0

Sí, -trustcacerts es la sintaxis correcta

Sin embargo, para el guión relacionado con el trabajo bajo Cygwin tiene que quitar sudo de todas las líneas keytool -.. sudo no está disponible en Cygwin

2

En Mac OS X Mavericks 10.9 hice esto:

siempre hacer un directorio tmp que borro más tarde, pero no tiene que:

mkdir ~/tmp 
cd ~/tmp 

luego descargar los CERT:

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 

obtener su casa de Java:

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

Uso herramienta de claves para instalarlo:

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 
Cuestiones relacionadas