Как получить версию OpenSSL в установке Tomcat 6
Прочитав статью об ошибке безопасности 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 ответа
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 /?" просмотреть список параметров для утилиты командной строки. Это также показывает правильный синтаксис команды.
- Введите "openssl version" и нажмите "Enter". Версия OpenSSL отображается в утилите командной строки Windows.
Если команда openssl возвращает ошибку, возможно, она не установлена.
Существует несколько распространенных режимов развертывания Tomcat в MS-Windows, если включен HTTPS:
- Tomcat работает за IIS, OpenSSL не используется
- Tomcat работает за Apache, OpenSSL используется Apache
- Автономный сервер Tomcat с разъемом JSSE (Java SSL), OpenSSL не используется
- Автономный сервер 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