Сертификат RSA, настроенный для SERVER, НЕ содержит идентификатор, соответствующий имени сервера


28

Я недавно запустил сервер LAMP (все последние версии) с WordPress на нем, и я пытаюсь установить сертификат SSL, который я недавно приобрел. Когда я перезагружаюсь apachectl, error_log дает мне это:

[Tue Feb 25 01:07:14.744222 2014] [mpm_prefork:notice] [pid 1744] AH00169: caught SIGTERM, shutting down
[Tue Feb 25 01:07:17.135704 2014] [suexec:notice] [pid 1765] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Feb 25 01:07:17.217424 2014] [auth_digest:notice] [pid 1766] AH01757: generating secret for digest authentication ...
[Tue Feb 25 01:07:17.218686 2014] [lbmethod_heartbeat:notice] [pid 1766] AH02282: No slotmem from mod_heartmonitor
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/5.5/modules/mysql.so' - /usr/lib64/php/5.5/modules/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/5.5/modules/mysqli.so' - /usr/lib64/php/5.5/modules/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
[Tue Feb 25 01:07:17.305292 2014] [mpm_prefork:notice] [pid 1766] AH00163: Apache/2.4.6 (Amazon) OpenSSL/1.0.1e-fips PHP/5.5.7 configured -- resuming normal operations
[Tue Feb 25 01:07:17.305378 2014] [core:notice] [pid 1766] AH00094: Command line: '/usr/sbin/httpd'

В то время как ssl_error_log дает мне это:

[Tue Feb 25 00:57:15.802287 2014] [ssl:warn] [pid 1705] AH01909: RSA certificate configured for ec2-XX-XXX-XXX-XX.compute-1.amazonaws.com:443 does NOT include an ID which matches the server name
[Tue Feb 25 00:57:15.899327 2014] [ssl:warn] [pid 1706] AH01909: RSA certificate configured for ec2-XX-XXX-XXX-XX.compute-1.amazonaws.com:443 does NOT include an ID which matches the server name

Я изменил «ServerName» ssl.confна имя моего сервера (dcturano.com) и перезапустил apachectl, но эта ошибка возникает. Есть идеи почему?

Кроме того, я не установил CommonName сервера, может ли это быть проблемой?

Ответы:


45
openssl x509 -in server.crt -noout -subject

Должен вернуть сертификат. Это имя, которое вы должны использовать в директиве ServerName и для подключения.


# openssl x509 -in server.crt -noout -subject Ошибка открытия сертификата server.crt 140451499632288: ошибка: 02001002: системная библиотека: fopen: нет такого файла или каталога: bss_file.c: 398: fopen ('server.crt', ' r ') 140451499632288: ошибка: 20074002: подпрограммы BIO: FILE_CTRL: системная библиотека: bss_file.c: 400: невозможно загрузить сертификат
jmituzas

1
@jmituzas, вы должны изменить server.crtв openssl x509 -in server.crt -noout -subjectместу размещения server.crt
avivmg

4
Практически все общедоступные центры сертификации в настоящее время выдают сертификаты с расширением SubjectAlternativeName , и вы можете использовать любое или все имена в этом расширении (или любое имя, совпадающее с подстановочным знаком). OpenSSL не отображает SAN изолированно, но вы можете сделать что-то вродеopenssl x509 -in cert -text | grep -A1 "Subject Alternative Name"
dave_thompson_085

1
Также убедитесь, что вы добавили директиву ServerName, а не просто задали адрес виртуального хоста (что оказалось проблемой в моем случае).
hugovdberg

Это добилось цели. Скопированное значение CN localhostс выхода sudo openssl x509 -in /etc/ssl/certs/server.crt -noout -subjectas ServerName localhostin sudo nano /etc/httpd/conf.d/ssl.conf. Я использую Centos 7 в бродяге.
Дамодар Башял

2

В качестве альтернативы, если, как и я, вы даже не используете ssl, вы все равно получите это сообщение об ошибке, потому что использование ssl включено по умолчанию. В этом случае выключите его! Вот выдержка из config.d/ssl.conf:

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
#SSLEngine on
SSLEngine off

7
Я оценил ваш ответ, потому что в вопросе прямо говорится, что он купил сертификат Я обычно не покупаю вещи, которые я не собираюсь использовать.
hugovdberg

2

У меня была та же проблема, но это было по другой причине. Я размещаю это здесь для будущих гуглеров:

в моем файле конфигурации apache2, вместо того, чтобы иметь <VirtualHost *:443>, я имел <VirtualHost *:80>. Как только я это исправил, сайт снова заработал.


1

Я вызвал эту проблему через мой /etc/hostsфайл.

У меня был виртуальный хост, назовем его www.effinwhwhat.com

Имя хоста сервера было www2 .

Я добавил строку к своему, /etc/hostsчтобы я мог свернуть вещи против виртуального хоста:

192.168.1.200         www.effinwhatever.com

Как только я удалил эту строку из моего /etc/hosts, мой сервер Apache снова начал нормально работать (с перезапуском службы). Weird.

Также может быть уместно, что мой сертификат SSL предназначен для подстановочного домена.


0

У меня был такой же AH01909: ошибка сертификата RSA . В моем случае у меня было правильное serverNameзначение.

Причиной ошибки стал неверный IP-адрес в <VirtualHost 10.11.12.13:443>определении защищенного сайта. Я опечатал это!


-1

Убедитесь, что ваше ServerName в точности совпадает с openssl x509 -in server.crt -noout -subjectвыводом. если есть www, ServerName тоже нужен. если нет, ServerName должен удалить www.

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