1

Прочитав статью об ошибке безопасности Heartbleed, я понял, что рекомендуется проверять версию OpenSSL, которую использует Apache Tomcat.

Статья содержит это предложение:

Какую версию OpenSSL использует Tomcat?

Эта информация регистрируется AprLifecycleListener при запуске Tomcat. Например,

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)

Я провел пару часов в поисках, но не могу найти эту информацию в журналах Tomcat. Есть ли другое место, где я должен посмотреть? Есть ли другой способ выяснить это?

Я использую Tomcat 6 на Windows Server 2003. Я попытался изменить уровень журнала на Info , а затем на Debug , каждый раз перезапуская веб-сервер, но безрезультатно.

2 ответа2

4

OpenSSL не является частью Tomcat. Это отдельное приложение. Вам не нужен OpenSSL для использования Tomcat. OpenSSL используется для SSL в системах Unix и Linux. Windows имеет собственную реализацию SSL, но вы также можете установить openssl на Windows.

Вы используете SSL для Tomcat? Итак, вы подключаетесь к веб-приложению tomcat, используя что-то вроде https://localhost:8443 или у вас есть IIS или Apache между ними? Пример журнала, который вы цитируете, является примером!

Если у вас установлен Openssl, вы можете найти версию, выполнив следующие действия:

  • Нажмите кнопку "Пуск" и введите "cmd" в текстовое поле поиска. Нажмите "Enter", чтобы открыть командную строку Windows.
  • Типа "openssl /?"msgstr "для просмотра списка опций утилиты командной строки. Это также показывает правильный синтаксис команды.
  • Введите "openssl version" и нажмите "Enter". Версия OpenSSL отображается в утилите командной строки Windows.

Если команда openssl возвращает ошибку, возможно, она не установлена.

2

Существует несколько распространенных режимов развертывания Tomcat в MS-Windows, если включен HTTPS:

  1. Tomcat работает за IIS, OpenSSL не используется
  2. Tomcat работает за Apache, OpenSSL используется Apache
  3. Автономный сервер Tomcat с соединителем JSSE (Java SSL), OpenSSL не используется
  4. Автономный сервер Tomcat с разъемом APR, используется OpenSSL

Если у вас есть автономный сервер Tomcat, вы можете определить, какой метод HTTPS используется, проверив конфигурацию протокола соединителя. Apache предоставил бинарные файлы Tomcat 6.0 по умолчанию, включая APR (и, следовательно, OpenSSL), хотя вы, возможно, не используете его (обновите в любом случае!). Кроме того, если у вас установлен OpenSSL отдельно, это не имеет значения с точки зрения Tomcat (хотя он может использоваться вашим Apache или другим веб-сервером).

Если вы используете официальный двоичный файл веб-сервера Apache-2.2 (contrib), номер версии OpenSSL обычно кодируется в имени файла пакета установщика. Для 2.4 есть несколько разных упакованных версий. По крайней мере, один (Apachehaus) документирует версию OpenSSL и предоставляет openssl.exe вы можете запустить, хотя он может не быть в обычном пользовательском PATH он находится в подкаталоге bin/ установки Apache.

Если у вас LogLevel "info" или выше, Apache запустит версии mod_ssl и OpenSSL при запуске. Начиная с 6.0.36, Tomcat6 делает то же самое (ошибка # 53057).

Изучить, какие DLL загружен запущенным процессом, Process Explorer удобно, к сожалению, хотя кажется, что обычная бинарная ссылка распространения Tomcat OpenSSL (и более) в одну DLL (tcnative-1.dll), а не легко идентифицируемую (и заменяемую) ) libssl.dll/libcrypto.dll (или аналогичный), как это принято в * nix системах. (Этот анализ будет работать на Apachehaus Apache httpd.)

Тогда довольно примитивный, но надежный способ - использовать find (или строки, если она у вас уже есть) из 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

Process Explorer сообщит вам местоположение tcnative-1.dll для работающего процесса tomcat6, если вы не можете легко его найти.

Чтобы подвести итог:

  • проверьте netstat -abn -p TCP чтобы увидеть, что прослушивает 443 (или любой другой порт HTTPS, который вы используете)
  • проверьте свой соединитель, чтобы узнать, предоставляет ли Tomcat протокол SSL и каким образом
  • проверьте версию своего веб-сервера и конфигурацию HTTPS

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .