Como obter a versão do OpenSSL em uma instalação do Tomcat 6

1

Depois de ler um artigo sobre o bug de segurança do Heartbleed , entendo que é uma boa prática verificar o OpenSSL versão que o Apache Tomcat está usando.

O artigo contém esta frase:

What version of OpenSSL is Tomcat using?

This information is logged by AprLifecycleListener when Tomcat starts. For example,

10-Apr-2014 19:25:28.801 INFO [main] org.apache.catalina.core.AprLifecycleListener.init Loaded APR based Apache Tomcat Native library 1.1.30 using APR version 1.4.8.
10-Apr-2014 19:25:28.804 INFO [main] org.apache.catalina.core.AprLifecycleListener.init APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
10-Apr-2014 19:25:29.955 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized (OpenSSL 1.0.1g 7 Apr 2014)

Passei algumas horas pesquisando, mas não consigo encontrar essas informações nos registros do Tomcat. Existe outro lugar onde eu deveria procurar? Existe outra maneira de descobrir isso?

Estou usando o Tomcat 6 no Windows Server 2003. Tentei alterar o nível de log para Info e, em seguida, para Debug , sempre que reiniciei o servidor da Web, sem sucesso.

    
por Ziba Leah 29.04.2014 / 08:28

2 respostas

4

O OpenSSL não faz parte do Tomcat. É uma aplicação separada. Você não precisa do OpenSSL para usar o Tomcat. O OpenSSL é usado para SSL em sistemas Unix e Linux. O Windows possui sua própria implementação SSL, mas você também pode instalar o openssl no Windows.

Você usa SSL para o Tomcat? Então você se conecta à aplicação web tomcat usando algo como https://localhost:8443 ou você tem IIS ou Apache entre os dois? O exemplo de log que você cita é um exemplo!

Se você tiver o Openssl instalado, poderá encontrar a versão seguindo estas etapas:

  • Clique no botão "Iniciar" do Windows e digite "cmd" na caixa de texto de pesquisa. Pressione "Enter" para abrir sua linha de comando do Windows.
  • Digite "openssl /?" para visualizar uma lista de opções para o utilitário de linha de comando. Isso também mostra a sintaxe apropriada para o comando.
  • Digite "openssl version" e pressione "Enter". A versão do OpenSSL é exibida no utilitário de linha de comando do Windows.

Se o comando openssl retornar um erro, provavelmente ele não está instalado.

    
por 29.04.2014 / 14:17
2

Existem vários modos comuns de implantação para o Tomcat no MS-Windows, se o HTTPS estiver ativado:

  1. Tomcat rodando atrás do IIS, o OpenSSL não é usado
  2. Tomcat rodando atrás do Apache, OpenSSL é aquele usado pelo Apache
  3. Servidor independente do Tomcat com conector JSSE (Java SSL), o OpenSSL não é usado
  4. Servidor autônomo Tomcat com conector APR, OpenSSL em uso

Se você tiver um servidor Tomcat independente, poderá determinar qual método HTTPS é usado por inspeção a configuração do protocolo Connector . O Apache fornecido por binários do Tomcat 6.0 inclui APR (e, portanto, OpenSSL) por padrão, embora você possa não estar usando (atualize mesmo assim!). Além disso, se você tiver o OpenSSL instalado separadamente, ele é irrelevante do ponto de vista do Tomcat (embora ele possa ser usado pelo seu Apache ou outro servidor da web).

Se você estiver usando um binário do servidor da web oficial (contrib) Apache-2.2, o número da versão do OpenSSL será geralmente codificado no nome do arquivo do pacote do instalador. Para o 2.4 existem várias versões empacotadas diferentes. Pelo menos um (Apachehaus) documenta a versão do OpenSSL e fornece um openssl.exe que você pode executar, embora possa não estar no usuário normal PATH está no subdiretório bin/ da instalação do Apache .

Se você tiver LogLevel de "info" ou superior, o Apache registrará as versões mod_ssl e OpenSSL na inicialização. Desde 6.0.36, o Tomcat6 faz o mesmo ( bug # 53057 ).

Para ver quais DLLs um processo em execução carregou Process Explorer é útil, infelizmente parece que a distribuição binária do Tomcat normal vincula o OpenSSL (e mais) a uma única DLL ( tcnative-1.dll ) em vez de uma% (%)libssl.dll / libcrypto.dll (ou semelhante) facilmente identificável (e substituível) como é a convenção em * nix sistemas. (Esta análise funcionará no Apachehaus Apache httpd embora.)

Uma maneira bastante primitiva, porém confiável, é usar find (ou strings se você já tem), de um prompt cmd :

cd \Program Files\apache-tomcat\bin
find "OpenSSL" tcnative-1.dll
[...]
TLSv1 part of OpenSSL 1.0.1d 5 Feb 2013
SSLv3 part of OpenSSL 1.0.1d 5 Feb 2013
SSLv2 part of OpenSSL 1.0.1d 5 Feb 2013
DTLSv1 part of OpenSSL 1.0.1d 5 Feb 2013

O Process Explorer informará a localização de tcnative-1.dll para um processo de execução do tomcat6, se você não conseguir encontrá-lo facilmente.

Para resumir:

  • verifique netstat -abn -p TCP para ver o que está ouvindo no 443 (ou qualquer porta HTTPS que você use)
  • verifique seu conector para ver se e como o Tomcat fornece SSL
  • verifique a versão do seu servidor da Web e a configuração do HTTPS
por 29.04.2014 / 19:17