Вопрос или проблема
Я получил эту ошибку при настройке ssl на Ubuntu 14.04.1 LTS (apache2, openssl)
AH01909: RSA сертификат, настроенный для localhost.localdomain:443, НЕ включает идентификатор, который соответствует имени сервера
Есть ли идеи, что может здесь происходить?
Спасибо!
Попробуйте зайти в папку сертификатов, и если у вас есть .pem файл,
это сработало для меня:
$ openssl x509 -in nagios.pem -noout -subject
Вы должны получить что-то вроде:
subject= /C=AU/ST=Australia/L=Adelaide/O=Australian web agency/CN=Your.Server.Common.Name/[email protected]
Ответ или решение
Ошибка "AH01909: RSA certificate configured for localhost.localdomain:443 does NOT include an ID which matches the server name" возникает при настройке SSL-сертификата для вашего веб-сервера Apache, который не соответствует имени хоста, заданному в конфигурации. В вашем случае, вы пытаетесь использовать сертификат для хоста localhost.localdomain
, однако сертификат не содержит идентификатор, совпадающий с этим именем.
Анализ проблемы:
-
Причины возникновения:
- Несоответствие имени сервера: SSL-сертификаты содержат поля "Common Name" (CN) или альтернативные имена (SAN), где указаны допустимые имена хостов. Если эти значения не совпадают с именем, используемым в конфигурации Apache, возникает указанная ошибка.
- Использование самоподписанного сертификата: Если вы используете самоподписанный сертификат, возможно, его CN не соответствует
localhost.localdomain
.
-
Определение текущего состояния сертификата:
Чтобы проверить, какой CN содержится в вашем сертификате, вы можете использовать следующую команду OpenSSL:openssl x509 -in /path/to/your/certificate.pem -noout -subject
Замените
/path/to/your/certificate.pem
на реальный путь к вашему сертификату. Если команда возвращает, например,subject= /C=AU/ST=Australia/L=Adelaide/O=Australian web agency/CN=Your.Server.Common.Name
, это указывает на то, что ваш сертификат не подходит для использования сlocalhost.localdomain
.
Решение проблемы:
-
Создание нового сертификата:
Если ваш текущий сертификат не соответствует имени хоста, вам следует создать новый сертификат с CN, соответствующимlocalhost.localdomain
. Это можно сделать с помощью OpenSSL следующим образом:openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout myserver.key -out myserver.crt -subj "/C=AU/ST=Australia/L=Adelaide/O=Australian web agency/CN=localhost.localdomain"
Эта команда создаст новый самоподписанный сертификат, который будет соответствовать требуемому имени.
-
Настройка Apache:
Убедитесь, что ваша конфигурация Apache ссылается на новый сертификат и ключ. Внутри вашего виртуального хоста добавьте следующие строки:SSLEngine on SSLCertificateFile /path/to/myserver.crt SSLCertificateKeyFile /path/to/myserver.key
-
Перезапуск Apache:
После внесения изменений в конфигурацию, перезапустите Apache, чтобы применить новые настройки:sudo service apache2 restart
Заключение:
Корректная настройка сертификатов — это важный шаг для обеспечения безопасности вашего веб-сервера. Убедитесь, что ваша конфигурация соответствует требованиям, и что сертификат даже в случае самоподписанного, отвечает ожиданиям сервера. Строго следуя предложенным шагам, вы сможете избавиться от ошибки и обеспечить безопасное соединение на вашем сайте.