So erhalten Sie die OpenSSL-Version in einer Tomcat 6-Installation

10965
Ziba Leah

Nachdem ich einen Artikel über den Heartbleed-Sicherheitsfehler gelesen habe, verstehe ich, dass es eine gute Praxis ist, die OpenSSL-Version zu überprüfen, die Apache Tomcat verwendet.

Der Artikel enthält diesen Satz:

Welche Version von OpenSSL verwendet Tomcat?

Diese Informationen werden von AprLifecycleListener beim Start von Tomcat protokolliert. Zum Beispiel,

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) 

Ich habe ein paar Stunden damit verbracht zu suchen, finde diese Informationen jedoch nicht in den Tomcat-Protokollen. Gibt es einen anderen Ort, wo ich suchen sollte? Gibt es eine andere Möglichkeit, dies herauszufinden?

Ich verwende Tomcat 6 unter Windows Server 2003. Ich habe versucht, die Protokollebene zu ändern Infound dann Debugjedes Mal, wenn der Webserver neu gestartet wird, ohne Erfolg.

1
Sind Sie sicher, dass Sie den https-Connector verwenden? that guy from over there vor 10 Jahren 0
Wie kann ich das überprüfen? Ich bin völlig neu in der Welt von Tomcat und arbeite normalerweise mit IIS Ziba Leah vor 10 Jahren 0

2 Antworten auf die Frage

4
SPRBRN

OpenSSL ist nicht Teil von Tomcat. Es ist eine separate Anwendung. Sie benötigen OpenSSL nicht, um Tomcat zu verwenden. OpenSSL wird für SSL auf Unix- und Linux-Systemen verwendet. Windows hat eine eigene SSL-Implementierung, aber Sie können openssl auch unter Windows installieren.

Verwenden Sie SSL für Tomcat? Verbinden Sie sich also mit der Tomcat-Webapp mit etwas https://localhost:8443oder haben Sie IIS oder Apache dazwischen? Das Protokollbeispiel, das Sie zitieren, ist ein Beispiel!

Wenn Sie Openssl installiert haben, können Sie die Version folgendermaßen finden:

  • Klicken Sie auf die Windows-Schaltfläche "Start" und geben Sie "cmd" in das Suchtextfeld ein. Drücken Sie "Enter", um Ihre Windows-Befehlszeile zu öffnen.
  • Geben Sie "openssl /?", um eine Liste von Optionen für das Befehlszeilendienstprogramm anzuzeigen. Dies zeigt Ihnen auch die richtige Syntax für den Befehl.
  • Geben Sie "openssl version" ein und drücken Sie "Enter". Die OpenSSL-Version wird im Windows-Befehlszeilenprogramm angezeigt.

Wenn der Befehl openssl einen Fehler zurückgibt, ist er wahrscheinlich nicht installiert.

Dazwischen ist Apache .. Wenn ich versuche, OPENSSL zu starten, hatte ich die übliche Meldung "Befehl nicht erkannt", also wahrscheinlich nicht installiert. Ziba Leah vor 10 Jahren 0
Wenn Sie der Sysadmin für diesen Server sind, wenn Sie Tomcat und nicht OpenSSL installiert haben, bin ich mir ziemlich sicher, dass er nicht installiert ist. Wenn Sie sich jetzt für die Installation entscheiden, haben Sie die gepatchte Version. Außerdem können Sie den Test durchführen, wenn Sie nach der schwerwiegenden Sicherheitsanfälligkeit suchen möchten und ob der Tomcat-Server über das Internet verfügbar ist. Andernfalls können Sie das Heartbleed-Python-Skript lokal ausprobieren, wenn Sie Python installiert haben. SPRBRN vor 10 Jahren 1
Wenn Sie Apache dazwischen verwenden, stellt Tomcat wahrscheinlich keine Verbindung über SSL her, es sei denn, Sie verwenden SSL zwischen Apache und Tomcat, was ungewöhnlich ist. Wenn Sie also SSL verwenden möchten, möchten Sie dies wahrscheinlich für Apache einrichten. Wenn Sie Apache nicht für andere Anwendungen (wie PHP-Webapps) verwenden, können Sie auf Tomcat verzichten, Port 80 anstelle von 8080 zu verwenden. In diesem Fall würden Sie Tomcat für die direkte Verwendung von SSL einrichten. SPRBRN vor 10 Jahren 1
OpenSSL ist nicht Teil von Tomcat **, aber die OpenSSL-Bibliothek ist in den Tomcat 6 Windows-Binärpaketen ** enthalten, die auf apache.org erhältlich sind. Der Bibliothekscode ist in eine Tomcat-DLL integriert, es ist keine `openssl.exe` enthalten. mr.spuratic vor 10 Jahren 1
2
mr.spuratic

Es gibt mehrere allgemeine Bereitstellungsmodi für Tomcat unter MS-Windows, wenn HTTPS aktiviert ist:

  1. Tomcat läuft hinter IIS, OpenSSL wird nicht verwendet
  2. Tomcat läuft hinter Apache, OpenSSL ist das von Apache verwendete
  3. Tomcat-Standalone-Server mit JSSE-Connector (Java SSL), OpenSSL wird nicht verwendet
  4. Tomcat-Standalone-Server mit APR-Connector, OpenSSL wird verwendet

Wenn Sie über einen Standalone-Tomcat-Server verfügen, können Sie durch Überprüfen der Connector-Protokollkonfiguration ermitteln, welche HTTPS-Methode verwendet wird . Die von Apache bereitgestellten Tomcat 6.0-Binärdateien enthalten standardmäßig APR (und damit OpenSSL), obwohl Sie es möglicherweise nicht verwenden (Aktualisierung trotzdem!). Wenn Sie OpenSSL separat installiert haben, ist dies aus Tomcat-Sicht irrelevant (obwohl es möglicherweise von Ihrem Apache oder einem anderen Webserver verwendet wird).

Wenn Sie eine offizielle (Contrib) Apache-2.2-Webserver-Binärdatei verwenden, wird die OpenSSL-Versionsnummer normalerweise im Dateinamen des Installationspakets codiert. Für 2.4 gibt es mehrere verschiedene Paketversionen. Mindestens ein (Apachehaus) dokumentiert die OpenSSL-Version und stellt eine Version bereit, die openssl.exeSie ausführen können, auch wenn dies nicht der normale Benutzer ist PATH, der sich im bin/Unterverzeichnis der Apache-Installation befindet.

Wenn Sie über "InfoLevel" oder höher verfügen, protokolliert Apache die Versionen mod_ssl und OpenSSL beim Start. Seit 6.0.36 macht Tomcat6 dasselbe ( Fehler # 53057 ).

Um zu sehen, welche DLLs ein laufender Prozess geladen hat, ist Process Explorer praktisch, obwohl es so aussieht, als würde die normale Binärdistribution von Tomcat OpenSSL (und mehr) in einer einzigen DLL ( tcnative-1.dll) verknüpfen, anstatt ein leicht identifizierbares (und ersetzbares) libssl.dll/ libcrypto.dll(oder ähnliches) ) wie es die Konvention über * nix-Systeme ist. (Diese Analyse funktioniert jedoch auf dem Apachehaus Apache httpd.)

Ein ziemlich primitiver, aber zuverlässiger Weg ist die Verwendung find(oder , falls vorhanden, die Zeichenfolgen ) cmdanhand einer Eingabeaufforderung:

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 

Der Prozess-Explorer tcnative-1.dllinformiert Sie über den Ort eines laufenden Tomcat6-Prozesses, wenn Sie ihn nicht leicht finden können.

Zusammenfassen:

  • Prüfen Sie netstat -abn -p TCP, was auf 443 zu hören ist (oder welchen HTTPS-Port Sie verwenden).
  • Überprüfen Sie in Ihrem Connector, ob und wie SSL von Tomcat bereitgestellt wird
  • Überprüfen Sie Ihre Webserver-Version und HTTPS-Konfiguration