Сертификат RSA, настроенный для localhost.localdomain:443, НЕ включает идентификатор, который совпадает с именем сервера.

Вопрос или проблема

Я получил эту ошибку при настройке 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, однако сертификат не содержит идентификатор, совпадающий с этим именем.

Анализ проблемы:

  1. Причины возникновения:

    • Несоответствие имени сервера: SSL-сертификаты содержат поля "Common Name" (CN) или альтернативные имена (SAN), где указаны допустимые имена хостов. Если эти значения не совпадают с именем, используемым в конфигурации Apache, возникает указанная ошибка.
    • Использование самоподписанного сертификата: Если вы используете самоподписанный сертификат, возможно, его CN не соответствует localhost.localdomain.
  2. Определение текущего состояния сертификата:
    Чтобы проверить, какой 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.

Решение проблемы:

  1. Создание нового сертификата:
    Если ваш текущий сертификат не соответствует имени хоста, вам следует создать новый сертификат с 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"

    Эта команда создаст новый самоподписанный сертификат, который будет соответствовать требуемому имени.

  2. Настройка Apache:
    Убедитесь, что ваша конфигурация Apache ссылается на новый сертификат и ключ. Внутри вашего виртуального хоста добавьте следующие строки:

    SSLEngine on
    SSLCertificateFile /path/to/myserver.crt
    SSLCertificateKeyFile /path/to/myserver.key
  3. Перезапуск Apache:
    После внесения изменений в конфигурацию, перезапустите Apache, чтобы применить новые настройки:

    sudo service apache2 restart

Заключение:

Корректная настройка сертификатов — это важный шаг для обеспечения безопасности вашего веб-сервера. Убедитесь, что ваша конфигурация соответствует требованиям, и что сертификат даже в случае самоподписанного, отвечает ожиданиям сервера. Строго следуя предложенным шагам, вы сможете избавиться от ошибки и обеспечить безопасное соединение на вашем сайте.

Оцените материал
Добавить комментарий

Капча загружается...