Сертифікат 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, але ця помилка не виникає. Будь-які ідеї чому?

На відміну від цього, я не встановив загальне ім'я сервера, це може бути проблемою?

Відповіді:


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

Потрібно повернути CN сертифікат. Це ім'я, яке ви повинні використовувати в директиві ServerName і для підключення.


# openssl x509 -in server.crt -noout -subject Помилка відкриття сервера сертифікатів.crt 140451499632288: помилка: 02001002: системна бібліотека: fopen: Немає такого файлу чи каталогу: bss_file.c: 398: fopen ('server.crt', ' r ') 140451499632288: помилка: 20074002: Підпрограми BIO: FILE_CTRL: системна lib: 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 -subjectяк ServerName localhostу 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

У мене було те саме питання, але це було з іншої причини. Я публікую його тут для майбутніх googlers:

на моєму конфігураційному апараті apache2, замість того <VirtualHost *:443>, щоб він мав <VirtualHost *:80>. Як тільки я це зафіксував, сайт створив резервну копію та працював.


1

Цю проблему я запустив через свій /etc/hostsфайл.

У мене був virtualhost, назвемо це www.effinwever.com

Ім’ям сервера було www2 .

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

192.168.1.200         www.effinwhatever.com

Як тільки я видалив цю лінію зі свого /etc/hosts, сервер Apache знову почав нормально обслуговуватися (з перезапуском служби). Дивно.

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


0

У мене був той самий AH01909: помилка сертифіката RSA . У моєму випадку я мав правильне serverNameзначення.

Причиною помилки стала неправильна IP-адреса у <VirtualHost 10.11.12.13:443>визначенні безпечного сайту. Я неправильно ввів його!


-1

Будьте впевнені, що ваше ім’я ServerNire точно збігається з openssl x509 -in server.crt -noout -subjectрезультатами. якщо є www, ServerName також потрібен. якщо ні, ServerName повинен видалити www.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.