Как определить, установлены ли OpenSSL и mod ssl на apache2
кто-нибудь знает команду, чтобы определить, установлены ли OpenSSL и mod_ssl на apache2?
13 ответов
Если на вашем сервере установлен PHP, вы можете создать php-файл, назовем его phpinfo.php и добавьте это <?php echo phpinfo();?>
, и откройте файл в браузере, это показывает информацию о вашей системной среде, чтобы быстро найти информацию о загруженных модулях Apache, найдите "загруженные модули" на результирующей странице.
Если на вашем сервере установлен PHP, вы можете проверить его во время выполнения, используя"extension_loaded" funciontion. Вот так:
<?php
if (!extension_loaded('openssl')) {
// no openssl extension loaded.
}
?>
обычно, когда вы компилируете свой сервер apache2 (или устанавливаете его с помощью packages facility stuff), вы можете проверить любую директиву, которая доступна для использования, нажав эту команду:
~# $(which httpd) -L | grep SSL # on RHEL/CentOS/Fedora
~# $(which apache2) -L | grep SSL # on Ubuntu/Debian
Если вы не видите никакой директивы SSL*, это означает, что у вас нет apache2 с скомпилированным mod_ssl.
надеется, что это помогает ;)
установка Apache по умолчанию настроена для отправки этой информации на сервер строка заголовка. Вы можете просмотреть это для любого сервера с помощью команды curl.
$ curl --head http://localhost/
HTTP/1.1 200 OK
Date: Fri, 04 Sep 2009 08:14:03 GMT
Server: Apache/2.2.8 (Unix) mod_ssl/2.2.8 OpenSSL/0.9.8a DAV/2 PHP/5.2.6 SVN/1.5.4 proxy_html/3.0.0
используйте следующие команды.
$ openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013 (or similar output)
для RHEL / CentOS / Fedora:
$ httpd -t -D DUMP_MODULES | grep ssl
ssl_module (shared)
Для Ubuntu / Debian
$ apache2 -t -D DUMP_MODULES | grep ssl
ssl_module (shared)
для SUSE
$ httpd2 -t -D DUMP_MODUELS | grep ssl
ssl_module (shared)
если вы просто запустите openssl
в вашем терминале он должен представить оболочку openSSL. Мой первый ключ к пониманию того, что у меня нет mode_ssl
было, когда я получил следующую ошибку после добавления SSLEngine on
в моем файле хост:
Invalid command 'SSLEngine', perhaps misspelled or defined by a module not included in the server configuration
в centos мне просто пришлось установить его через yum install mod_ssl
определить в OpenSSL & ssl_module
# rpm -qa | grep openssl
openssl-libs-1.0.1e-42.el7.9.x86_64
openssl-1.0.1e-42.el7.9.x86_64
openssl098e-0.9.8e-29.el7.centos.2.x86_64
openssl-devel-1.0.1e-42.el7.9.x86_64
расширением mod_ssl
# httpd -M | grep ssl
или
# rpm -qa | grep ssl
используя Apache 2, Вы можете увидеть, какие модули в настоящее время загружаются демоном HTTP, выполнив следующую команду:
apache2ctl -M
на -M
опция действительно просто параметр, переданный в httpd.
apache2ctl является передним концом протокола передачи гипертекста Apache (сервер http. Это разработан, чтобы помочь администратору контролировать функционирование демона Apache apache2.
NOTE: The default Debian configuration requires the environment variables APACHE_RUN_USER, APACHE_RUN_GROUP, and APACHE_PID_FILE to be set in /etc/apache2/envvars. The apache2ctl script returns a 0 exit value on success, and >0 if an error occurs. For more details, view the comments in the script.
К счастью, большинство вкусов Linux имеют OpenSSL "из коробки".
для проверки установки:
openssl version
Ответ:OpenSSL 1.0.1t 3 May 2016
Примечание: версия OpenSSL 1.0.1 - 1.0.1 f (включительно)
уязвимы для ошибки OpenSSL Heartbleed.
Версии 1.0.1 g и выше являются фиксированными.
дополнительные установки info:
Ubuntu / Debiandpkg -l | grep -i openssl
Ответ:ii libcrypt-openssl-random-perl 0.04-2+b1 amd64 module to access the OpenSSL pseudo-random number generator
ii libcurl3:amd64 7.38.0-4+deb8u5 amd64 easy-to-use client-side URL transfer library (OpenSSL flavour)
ii libgnutls-openssl27:amd64 3.3.8-6+deb8u4 amd64 GNU TLS library - OpenSSL wrapper
ii openssl 1.0.1t-1+deb8u6 amd64 Secure Sockets Layer toolkit - cryptographic utility
ii python-ndg-httpsclient 0.3.2-1 all enhanced HTTPS support for httplib and urllib2 using PyOpenSSL
ii python-openssl 0.14-1 all Python 2 wrapper around the OpenSSL library
ii ssl-cert 1.0.35 all simple debconf wrapper for OpenSSL
Да, OpenSSL установлен!
чтобы установить OpenSSL если у вас его нет, попробуйте:
Debian / Ubuntu:sudo apt-get install openssl
RedHat / CentOS:yum install openssl
вы должны установить этот мод Apache,http://httpd.apache.org/docs/2.0/mod/mod_info.html, это в основном дает вам исчерпание модов, которые вы используете, и настроек Apache. У меня это позволило на моем Apache и это дает мне эту информацию на мой сайт
версия сервера: Apache / 2.2.3 (Debian) mod_jk / 1.2.18 PHP/5.2.0-8+etch13 mod_ssl / 2.2.3 OpenSSL/0.9.8 c mod_perl/2.0.2 Perl / v5.8.8
только в ssl_engine.log в свой каталог журналов Apache, где вы должны найти что-то вроде:
[ssl:info] [pid 5963:tid 139718276048640] AH01876: mod_ssl/2.4.9 compiled against Server: Apache/2.4.9, Library: OpenSSL/1.0.1h
включить mod_ssl в httpd.conf и перезапустите apache. Вы увидите информацию openssl по ошибке.войти как ниже
[Fri Mar 23 15:13:38.448268 2018] [mpm_worker:notice] [pid 8891:tid 1] AH00292: Apache/2.4.29 (Unix) OpenSSL/1.0.2n configured -- resuming normal operations
[Fri Mar 23 15:13:38.448502 2018] [core:notice] [pid 8891:tid 1] AH00094: Command line: '/opt/apps/apache64/2.4.29/bin/httpd'
в моем случае это, как я получил информацию:
-
найдите, где находятся журналы apache, и перейдите туда, в моем случае:
cd /var/log/apache2
-
найдите в каком журнале openssl можно найти информацию:
grep -i apache.*openssl *_log
e.g. error_log ...
-
чтобы получить свежую информацию, перезапустите Apache, например,
rcapache2 restart # or service apache2 restart
-
проверить последние записи в журнале, например,
/var/log/apache2 # tail error_log
[Thu Jun 09 07:42:24 2016] [notice] Apache/... (Linux/...) mod_ssl/2.2.22 OpenSSL/1.0.1t ...