Por que o tomcat não está atendendo o certificado SSL correto?

3

Configurei o tomcat com SSL com sucesso e estava usando um certificado autoassinado. Recentemente, surgiu um problema em que apenas ter o cliente "Aceitar / confiar" em nosso certificado não era fácil. Acabamos de comprar um certificado de verisigin para esse servidor.

Eu adicionei o novo certificado ao certificado no armazenamento de chaves. Eu atualizei o arquivo server.xml do tomcat para usar o alias, para o novo certificado. Eu reiniciei o Tomcat e o servidor. Toda vez que eu me conecto ao servidor, recebo o certificado antigo.

Enviornment:

  • Windows 2008 R2 - 64 bits
  • Tomcat 6.0.29 - instalado como um serviço
  • Java 1.6.0_23

Conector de server.xml:

<Connector port="443" maxThreads="150" 
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="keystore.keys" keyalias="webapps2013"
           keystorePass="Redacted"             
           clientAuth="false" sslProtocol="TLS" protocol="HTTP/1.1" />

Eu até tentei alterar o armazenamento de chaves, movendo o certificado antigo para um alias diferente e adicionando meu novo certificado ao nome antigo do alias.

Eu tentei de vários navegadores e estações de trabalho. (Limpei meu cache também.)

Então, o que eu preciso fazer para que o tomcat pegue e sirva meu novo certificado?

UPDATE:
  Depois de uma sugestão em um dos comentários para limpar cache de tomcat.
  Parei o tomcat, deletei $ {CATALINA_HOME} / work e reiniciei o tomcat.
  Ainda está servindo o certificado antigo.

UPDATE 2:
Eu olhei através de jakarta_service_date.log catalina.date.log manager.date.log stdout.date.log e stderr.date.log não vejo nenhum erro de certificado. Embora eu esteja vendo um erro estranho sobre a serialização de sessão.

Dec 11, 2013 10:46:27 AM org.apache.catalina.session.StandardManager doUnload
SEVERE: IOException while saving persisted sessions: java.io.FileNotFoundException: 
C:\Tomcat6.0\work\Catalina\localhost\RCSLIBRRunner\SESSIONS.ser (Access is denied)
java.io.FileNotFoundException: C:\Tomcat6.0\work\Catalina\localhost\RCSLIBRRunner\SESSIONS.ser (Access is denied)

seguido por um stacktrace. Outros aplicativos lançaram a mesma exceção. Não aconteceu em algumas horas, eu acho que foi um efeito colateral da limpeza do cache de tomcats.

Aqui está outro erro de serialização:

Dec 11, 2013 10:46:27 AM org.apache.catalina.session.StandardManager stop
SEVERE: Exception unloading sessions to persistent storage
java.io.FileNotFoundException: C:\Tomcat6.0\work\Catalina\localhost\RCSLIBRRunner\SESSIONS.ser (Access is denied)
    
por Raystorm 11.12.2013 / 19:34

2 respostas

2

Tivemos problemas com protocol="HTTP/1.1" , com erros em nossos registros. Nossos erros foram

Certificate file specified or invalid file format

Com base em algumas " pesquisa do Google ", usamos esse para protocol :

protocol="org.apache.coyote.http11.Http11NioProtocol"

Nosso Connector é o seguinte:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
    SSLEnabled="true"
    maxThreads="150" 
    scheme="https" 
    secure="true"
    keystoreFile="/path/to/keystore"
    keystorePass="******"
    clientAuth="false" 
    sslProtocol="TLS" />
    
por 11.12.2013 / 22:59
1

Acontece que eu tinha um erro de digitação no meu Connector

Deve ser:

<Connector port="443" maxThreads="150" 
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="keystore.keys" keyAlias="webapps2013"
           keystorePass="Redacted"             
           clientAuth="false" sslProtocol="TLS" protocol="HTTP/1.1" />

Observação: o primeiro a em keyAlias é capitalizado.

Acontece que, se o alias não estiver listado, ele simplesmente exibe a primeira chave que encontra no armazenamento de chaves.

    
por 13.12.2013 / 02:11