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


18

Я настраиваю новый веб-сервер, который размещает дюжину виртуальных хостов в 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

Ответы:



4

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

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


1

Вы также можете получить эту ошибку, если вы используете сертификат с несколькими альтернативными именами субъекта, но ServerNameдиректива не соответствует значениям CN или SAN сертификата. Это часто бывает, когда разработчику требуется версия для разработки того же рабочего сайта, но нет реального сертификата для сайта разработки.

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

Сертификат:
CN = primaryserver.example.com SANs
= 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 ...


0

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 кто-то еще :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.