Вопрос или проблема
Я запускаю сайт на Apache (httpd) на сервере CentOS 7 и мониторю его с помощью Nagios на другом сервере CentOS 7. Конфигурация в Nagios выглядит так:
define service {
check_command check_http_url!/my_class/product/session!-f follow -S
host_name mysite.com
use critical-service
service_description My Site Production
servicegroups production-sites
}
Это работало до недавнего времени. Теперь Nagios сообщает об ошибке:
CRITICAL - Не удается установить SSL-соединение.
Я выполнил следующее и также увидел ошибку:
[root@mynagiosserver-01 ~]# /usr/lib64/nagios/plugins/check_http -H mysite.com -u /my_class/product/session -f follow -S -v
CRITICAL - Не удается установить SSL-соединение.
SSL инициализирован
На сервере Nagios, mysite.com сопоставляется с IP-адресом сервера Apache в файле /etc/hosts
.
Есть идеи, как я могу дальше исследовать эту проблему?
Ответ или решение
Ошибка "Cannot make SSL connection", которую вы наблюдаете при использовании Nagios на CentOS 7, может быть вызвана рядом причин, связанных как с конфигурацией Nagios, так и с самим сервером Apache. Давайте разберем шаги, которые помогут вам диагностировать и устранить эту проблему.
1. Проверьте SSL-соединение
Первым делом необходимо убедиться, что ваш сервер действительно поддерживает SSL. Для этого вы можете использовать следующие команды:
openssl s_client -connect mysite.com:443
Эта команда покажет информацию о сертификате, который использует сервер. Обратите внимание на сообщения о статусе соединения и ошибки, если таковые имеются.
2. Убедитесь, что SSL настроен правильно
Проверьте конфигурацию вашего Apache-сервера. Убедитесь, что у вас правильно настроены параметры SSL. Обычно все настройки SSL находятся в файле конфигурации, который может выглядеть как ssl.conf
или находиться в секции <VirtualHost *:443>
. Убедитесь в следующем:
- Сертификаты SSL корректно указаны;
- Параметры
SSLEngine on
и другие настройки SSL правильно определены.
Пример конфигурации может выглядеть следующим образом:
<VirtualHost *:443>
ServerName mysite.com
DocumentRoot /var/www/html
SSLEngine On
SSLCertificateFile /etc/ssl/certs/my_cert.pem
SSLCertificateKeyFile /etc/ssl/private/my_cert.key
SSLCertificateChainFile /etc/ssl/certs/my_chain.pem
</VirtualHost>
3. Проверьте настройки фаервола и SELinux
Это одна из типичных причин, по которой могут возникнуть проблемы с соединением. Убедитесь, что порты 80 (HTTP) и 443 (HTTPS) открыты на вашем сервере:
firewall-cmd --list-all
Если порты закрыты, откройте их командами:
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload
Также проверьте настройки SELinux, если он включен:
sestatus
Если он активен, убедитесь, что политики SELinux позволяют работу с SSL. Можно временно отключить SELinux для тестирования:
setenforce 0
Внимание: Не забудьте вернуть SELinux в предыдущий режим после тестирования.
4. Проверьте версию OpenSSL и Nagios Plugins
Есть вероятность, что проблема может быть связана с устаревшими версиями пакетов. Проверьте, установлены ли последние версии OpenSSL и Nagios Plugins:
yum info openssl
yum info nagios-plugins
Обновите их при необходимости:
yum update openssl nagios-plugins
5. Проверьте сертификат
Если ваш сертификат самоподписанный или вы используете сертификат, выданный недоверяемым центром сертификации, это также может вызывать проблемы с установлением SSL-соединения. Попробуйте добавить флаг -k
к check_http
или задать параметр --ssl
с указанием используемого метода и сертификатов:
/usr/lib64/nagios/plugins/check_http -H mysite.com -u /my_class/product/session -f follow -S --ssl
Если сертификат конечно самоподписанный, можно добавить его в доверенные сертификаты на вашем Nagios сервере.
Заключение
Следуя данным шагам, вы сможете значительно сузить круг возможных причин возникновения ошибки "Cannot make SSL connection". Начните с проверки настроек SSL на сервере Apache, сбрасывайте изменения с использованием инструментов вроде openssl
для диагностики, а также следите за конфигурациями фаервола и SELinux. Удачи в устранении проблемы!