2012-03-27 61 views
24

Estoy intentando actualizar el certificado SSL de acuerdo con this post .Error al importar certificado SSL: no es un certificado X.509

Soy novato en certificados, así que seguí this guide. Pero, cuando entro

keytool -keystore mycacerts -storepass changeit -importcert -file "C:\Users\Noks\Desktop\cacerts.pem" -v 

me sale el error:

keytool error: java.lang.Exception: Input not an X.509 certificate 
java.lang.Exception: Input not an X.509 certificate 
     at sun.security.tools.KeyTool.addTrustedCert(KeyTool.java:1913) 
     at sun.security.tools.KeyTool.doCommands(KeyTool.java:818) 
     at sun.security.tools.KeyTool.run(KeyTool.java:172) 
     at sun.security.tools.KeyTool.main(KeyTool.java:166) 

¿Cómo puedo solucionar esto?

+0

Creo que el comando funciona absolutamente bien en Java 1.6 o superior –

Respuesta

24

¿Su archivo cacerts.pem contiene un único certificado? Dado que es un PEM, tener una mirada en ella, se debe comenzar con

-----BEGIN CERTIFICATE-----

y terminar con

-----END CERTIFICATE-----

Por último, para comprobar que no está dañado, apoderarse de OpenSSL e imprimir sus datos usando

openssl x509 -in cacerts.pem -text

+0

Bueno, tenía un montón de tales unidades, acabo de modificarlo para incluir uno. Se instaló correctamente. :) – nikel

+0

Acabas de agregar un CERTIFICADO BEGIN y FINALIZAR CERTIFICADO entre todos los datos? También estoy enfrentando el mismo problema, ¿pueden ayudarme por favor diciendo lo que hicieron? –

+1

Las líneas ya deberían estar allí. Si no lo están, es probable que su certificado esté codificado DER (o no válido). Para convertirlo haga 'openssl x509 -en mycert.der -inform DER -out myCert.pem -outform PEM'. Para ver y verificar 'openssl -in myCert.pequeno-texto'. El archivo debe contener un solo certificado. –

25

Muchos ACC proporcionará un cert i n formato PKCS7.

Según Oracle documentation, la herramienta de claves commmand puede manejar PKCS # 7, pero a veces falla

The keytool command can import X.509 v1, v2, and v3 certificates, and PKCS#7 formatted certificate chains consisting of certificates of that type. The data to be imported must be provided either in binary encoding format or in printable encoding format (also known as Base64 encoding) as defined by the Internet RFC 1421 standard. In the latter case, the encoding must be bounded at the beginning by a string that starts with -----BEGIN, and bounded at the end by a string that starts with -----END.

Si el archivo PKCS7 no puede ser importado a tratar de transformarlo de PKCS7 a X.509:

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer 
3

Esto parece un hilo antiguo, pero voy a agregar mi experiencia aquí. Traté de instalar un certificado también y obtuve ese error. Luego abrí el archivo cer con un editor de texto y noté que había un espacio extra (carácter) al final de cada línea. Eliminar esas líneas me permitió importar el certificado.

Espero que esto valga la pena para otra persona.

+0

Este fue también el problema para mí, creo que porque copié el texto del certificado directamente del correo electrónico del proveedor del certificado, dejaba un espacio al final de cada línea. – Continuity8

Cuestiones relacionadas