2012-07-03 20 views
12

¡Preguntándome si alguien puede aclararme dónde estoy atornillando esto! Tengo un keytool creado keystore, un certificado primario, secundario y ssl de Thawte. Originalmente creé el CSR con openssl y luego usé el proceso documentado para convertir la clave privada a PKCS12 para importar al almacén de claves.Certificado SSL en Tomcat - El nombre de alias no identifica una clave

Creo que todos ellos han importado en el almacén de claves bien (pero obviamente no!) Pero el error que recibo de Tomcat es: 'nombre de alias java.io.IOException no identifica una entrada de clave

si hago un keytool -list -keystore keystore.ks esto es lo que me sale tipo de almacén de claves: JKS proveedor de almacén de claves: SUN

Su almacén de claves contiene 4 entradas

secondary, Jun 22, 2012, trustedCertEntry, 
Certificate fingerprint (MD5): EB:A3:71:66:38:5E:3E:F4:24:64:ED:97:52:E9:9F:1B 
tomcat, Jun 22, 2012, trustedCertEntry, 
Certificate fingerprint (MD5): EA:D0:43:F8:7F:D5:1C:4A:BA:A7:F4:64:A9:6A:A1:B0 
primary, Jun 22, 2012, trustedCertEntry, 
Certificate fingerprint (MD5): D6:6A:92:1C:83:BF:A2:AE:6F:99:5B:44:E7:C2:AB:2A 
1, Jul 2, 2012, PrivateKeyEntry, 
Certificate fingerprint (MD5): EA:D0:43:F8:7F:D5:1C:4A:BA:A7:F4:64:A9:6A:A1:B0 

estoy bastante seguro de que mi server.xml de Tomcat está bien pero aquí está también para el conector https:

<Connector port="443" 
    protocol="org.apache.coyote.http11.Http11Protocol" 
    maxHttpHeaderSize="8192" 
    SSLEnabled="true" 
    maxThreads="150" 
    minSpareThreads="25" 
    maxSpareThreads="75" 
    enableLookups="false" 
    disableUploadTimeout="true" 
    acceptCount="100" 
    scheme="https" 
    secure="true" 
    clientAuth="false" 
    sslProtocol="TLS" 
    URIEncoding="UTF-8" 
    keystorePass="xxxxxx" 
    keystoreFile="/keys/keystore.ks" 
    keyAlias="tomcat"/> 

¿Alguna idea? Esta es la primera vez que hago esto, así que tal vez he arruinado algo obvio.

el sitio funciona bien en el puerto 80.

encantaría escuchar algunas sugerencias :)

Respuesta

15

Cuando lista de alias con keytool, el nombre de alias es lo que hay antes de la coma para cada entrada. Aquí tiene 4 entradas: secondary, tomcat, primary y 1. Solo el alias 1 es para una clave privada.

(Tenga en cuenta que puede utilizar un archivo PKCS # 12 directamente a través de keystoreType="PKCS12" en su lugar.)

+0

Ahh bien entiendo a qué te refieres. Esta es la primera vez que hago SSL, no puedo tener alias duplicados en el almacén de claves, así que si 'tomcat' es el certificado SSL proporcionado por Thawte, ¿qué nombre debo dar al nombre de la clave privada que lo acompaña? ¿Y cuál es el servidor.xml destinado a señalar? Gracias por tu ayuda, he estado tirando de mi cabello por esto. – G33kGrl

+0

Progreso leve: configure server.xml para usar el alias 1 (la clave privada) y ahora, al menos, el conector abre ese puerto correctamente. Sin embargo, obtengo un error de certificado "el certificado no es de confianza porque no se proporcionó ninguna cadena de emisores" ... la trama se complica ... – G33kGrl

+2

Cuando importa un certificado, debe importarlo contra el alias de clave privada (que ya está en el almacén de claves)), como se describe [aquí] (http://stackoverflow.com/a/9300727/372643). Dicho esto, parece que ya tiene un archivo PKCS # 12 creado con ese certificado, por lo que debería poder usarlo directamente. Parece que es posible que no haya compilado correctamente el archivo PKCS # 12 (¿usó la clave privada que utiliza para la solicitud?). ¿Qué instrucciones siguió? – Bruno

0

encontré this page particularmente útil .. Mi situación era de un certificado emitido por geotrust domain.com, donde sólo tenía dos archivos : un certificado basado en texto (x509) y una clave privada basada en texto. Estas instrucciones y el archivo de clase del convertidor funcionaron como un amuleto.