Назад | Перейти на главную страницу

К сожалению, для server.host.name:0 не найден сертификат сервера RSA или DSA?

Я настраиваю новый веб-сервер, на котором размещается дюжина виртуальных хостов на Ubuntu 12.4 с использованием Apache 2.2.22 с одним файлом конфигурации для каждого сайта. Я создал все файлы конфигурации сразу и запустил a2ensite * чтобы включить их все сразу. Когда я перезагрузил конфигурацию, это не удалось, и после перезапуска apache я обнаружил следующее сообщение об ошибке в моем error.log:

К сожалению, для server.host.name:0 не найден сертификат сервера RSA или DSA ?!

Большинство результатов для этого сообщения об ошибке датированы годами, которые не устраняют проблему, или являются исправленными ошибками. https://issues.apache.org/bugzilla/show_bug.cgi?id=31709

Из: http://www.clearchain.com/blog/posts/solving-the-apache-ssl-error-oops-no-rsa-or-dsa-server-certificate-found-for-www-somedomain-com0

Сводка: эта ошибка также может возникнуть, если вы забудете следующую строку в своем VirtualHost раздел:

SSLEngine on

Проблема оказалась в разные файла конфигурации, чем хост, указанный в ошибке. Это произошло из-за того, что в двух файлах были повторяющиеся значения ServerName. Я исправил не тот, и он начал резервное копирование (пока, эти полчаса) :-).

Чтобы устранить эту проблему, я отключил все сайты, а затем включил пару за раз, пока снова не столкнулся с проблемой.

Вы также можете получить эту ошибку, если используете сертификат с несколькими альтернативными именами субъектов, но ServerName директива не соответствует значению (значениям) CN или SAN сертификата. ИТ-отдел часто случается, когда разработчик хочет получить версию для разработки того же рабочего сайта, но для этого сайта нет настоящего сертификата.

Примеры веб-сайтов:
webserver.example.com
webserver-dev.example.com

Сертификат:
CN = primaryserver.example.com
SAN = webserver.example.com, puppies.example.com, kittens.example.com

Следующая конфигурация вызовет эту ошибку:
/etc/apache2/sites-enabled/webserver.example.com-ssl.conf
<IfModule mod_ssl.c> <VirtualHost *:443> ServerName webserver.example.com ...
/etc/apache2/sites-enabled/webserver-dev.example.com-ssl.conf
<IfModule mod_ssl.c> <VirtualHost *:443> ServerName webserver-dev.example.com ...

Следующая конфигурация решает эту проблему:
/etc/apache2/sites-enabled/webserver.example.com-ssl.conf
<IfModule mod_ssl.c> <VirtualHost *:443> ServerName webserver.example.com ...
/etc/apache2/sites-enabled/webserver.example.com-ssl.conf
<IfModule mod_ssl.c> <VirtualHost webserver-dev.example.com:443> ServerName webserver.example.com ...

FWIW, я снова столкнулся с этой проблемой под другим видом.

Если вы используете SSL-сертификаты с подстановочными знаками, убедитесь, что запись VirtualHost для домена (domain.com) указана перед любыми другими (foo.domain.com, bar.domain.com и т. Д.).

Я попробовал настроить конфигурацию по одному, и все остальное работало нормально, пока я не добавил этот файл обратно.

Затем я подумал, что имя файла конфигурации был ниже по алфавиту, чем конфигурационный файл с "определением основного домена". Изменил символическую ссылку так, чтобы она была помещена после основного определения, и все работало как шарм.

Пример порядка неудачного листинга:

foo.domain.conf
prim.domain.conf
something.domain.conf

Листинг рабочего примера:

prim.domain.conf
something.domain.conf
zfoo.domain.conf

HTH кто-то другой :)