Como atualizar o certificado SSL com o Tomcat 5.5

1

Meu cliente está executando o Tomcat 5.5 e está usando SSL. Seu certificado está prestes a expirar e eles compraram uma renovação. Recebi um arquivo .cer e pedi para atualizar o Tomcat.

O server.xml existente continha o seguinte conector:

<Connector port="443" maxHttpHeaderSize="8192"
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
           enableLookups="false" disableUploadTimeout="true"
           acceptCount="100" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS"
           keystoreFile="companyname.keystore" keyAlias="tomcat2" />

Eu corri %JAVA_HOME%\bin\keytool -list -keystore companyname.keystore

Keystore type: jks
Keystore provider: SUN

Your keystore contains 3 entries

root, Aug 7, 2007, trustedCertEntry,
Certificate fingerprint (MD5): 8F:5D:77:06:27:C4:98:3C:5B:93:78:E7:D7:7D:9B:CC
tomcat, Jun 12, 2007, keyEntry,
Certificate fingerprint (MD5): 33:80:6F:75:5A:B4:BC:C7:7A:7D:4F:3F:FA:C0:95:2F
tomcat2, Jun 14, 2008, keyEntry,
Certificate fingerprint (MD5): 0A:9B:73:6A:EE:2F:18:99:61:49:28:F3:CD:1E:DF:96

O SSL ainda funciona se eu excluir a entrada com o alias "tomcat". Estou assumindo que é um artefato de um certificado expirado anterior.

% JAVA_HOME% \ bin \ keytool -import -keystore companyname.keystore -alias tomcat3 -arquivo 2009cert.cer

Eu atualizei o server.xml para definir o keyAlias como tomcat3. Quando eu reinicio o Tomcat, vejo isso no log:

SEVERE: Error initializing endpoint
java.io.IOException: Alias name tomcat3 does not identify a key entry
    at org.apache.tomcat.util.net.jsse.JSSE14SocketFactory.getKeyManagers(JSSE14SocketFactory.java:143)
    (etc.)

Quando eu executo novamente o comando keytool -list:

Keystore type: jks
Keystore provider: SUN

Your keystore contains 4 entries

root, Aug 7, 2007, trustedCertEntry,
Certificate fingerprint (MD5): 8F:5D:77:06:27:C4:98:3C:5B:93:78:E7:D7:7D:9B:CC
tomcat, Jun 12, 2007, keyEntry,
Certificate fingerprint (MD5): 33:80:6F:75:5A:B4:BC:C7:7A:7D:4F:3F:FA:C0:95:2F
tomcat3, Jul 21, 2009, trustedCertEntry,
Certificate fingerprint (MD5): 8E:9F:F9:52:7B:07:B1:DB:BF:F3:96:BD:5F:49:2E:9F
tomcat2, Jun 14, 2008, keyEntry,
Certificate fingerprint (MD5): 0A:9B:73:6A:EE:2F:18:99:61:49:28:F3:CD:1E:DF:96

Isso tem algo a ver com a entrada tomcat3 sendo marcada como "trustedCertEntry" em vez de "keyEntry"?

O que estou fazendo de errado?

    
por Jeremy Stein 20.07.2009 / 07:28

1 resposta

1

O fato de estar se registrando como TrustedCert parece indicar que não há chave para o tomcat3. É provável que o novo certificado tenha sido solicitado para a chave existente tomcat2. As próprias chaves não expiram, apenas os certificados.

Você pode solicitar um novo certificado a qualquer momento, gerando uma nova solicitação de assinatura de certificado ou reutilizando o original, o que é bom. Faça uma cópia de backup de seu armazenamento de chaves e, em seguida, importe o certificado para o alias tomcat2.

%JAVA_HOME%\bin\keytool -import -keystore companyname.keystore -alias tomcat2 -file 2009cert.cer

Depois disso, você também vai querer apontar sua instância do tomcat de volta ao tomcat2.

    
por 20.07.2009 / 08:31

Tags