Certyfikat RSA skonfigurowany dla SERWERA NIE zawiera identyfikatora pasującego do nazwy serwera

28

Niedawno uruchomiłem na nim serwer LAMP (wszystkie najnowsze wersje) z WordPress i próbuję zainstalować niedawno zakupiony certyfikat SSL. Po ponownym uruchomieniu apachectlerror_log daje mi to:

[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'

Podczas gdy ssl_error_log daje mi to:

[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

Zmieniłem „ServerName” ssl.confna nazwę mojego serwera (dcturano.com) i zrestartowałem apachectl, ale ten błąd występuje. Jakieś pomysły dlaczego?

Nawiasem mówiąc, nie ustawiłem CommonName serwera, czy to może być problem?

zaćmienie
źródło

Odpowiedzi:

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

Powinny zwrócić CN świadectwa. Jest to nazwa, której należy użyć w dyrektywie ServerName i nawiązać połączenie.

quadruplebucky
źródło
# openssl x509 -in server.crt -noout -subject Błąd otwierania certyfikatu server.crt 140451499632288: błąd: 02001002: biblioteka systemowa: fopen: brak takiego pliku lub katalogu: bss_file.c: 398: fopen ('server.crt', ' r ') 140451499632288: błąd: 20074002: Procedury BIO: FILE_CTRL: system lib: bss_file.c: 400: nie można załadować certyfikatu
jmituzas
1
@jmituzas, należy zmienić server.crtw openssl x509 -in server.crt -noout -subjectcelu docelowego server.crt
avivmg
4
Praktycznie wszystkie publiczne urzędy certyfikacji wydają obecnie certyfikaty z rozszerzeniem SubjectAlternativeName i możesz używać dowolnej lub wszystkich nazw w tym rozszerzeniu (lub dowolnej nazwy pasującej do znaku wieloznacznego). OpenSSL nie wyświetla SAN w izolacji, ale możesz zrobić coś takiegoopenssl x509 -in cert -text | grep -A1 "Subject Alternative Name"
dave_thompson_085,
1
Upewnij się również, że dodałeś dyrektywę ServerName, a nie tylko ustawiłeś adres wirtualnego hosta (co w moim przypadku okazało się problemem).
hugovdberg
To załatwiło sprawę. Skopiowana wartość CN localhostz produkcji sudo openssl x509 -in /etc/ssl/certs/server.crt -noout -subjectjak ServerName localhostw sudo nano /etc/httpd/conf.d/ssl.conf. Używam centos 7 w włóczęgi.
Damodar Bashyal,
2

Alternatywnie, jeśli, podobnie jak ja, nawet nie używasz ssl, nadal pojawia się ten komunikat o błędzie, ponieważ używanie ssl jest domyślnie włączone. W takim przypadku wyłącz to! Oto fragment config.d/ssl.conf:

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
#SSLEngine on
SSLEngine off
Richard T.
źródło
7
Oceniłem twoją odpowiedź w dół, ponieważ pytanie wyraźnie stwierdza, że ​​kupił certyfikat. Zwykle nie kupuję rzeczy, których nie zamierzam używać.
hugovdberg
2

Miałem ten sam problem, ale z innego powodu. Zamieszczam go tutaj dla przyszłych pracowników Google:

na moim pliku konfiguracyjnym apache2, zamiast tego <VirtualHost *:443>miałem <VirtualHost *:80>. Gdy tylko to naprawiłem, strona została ponownie uruchomiona.

AliBZ
źródło
1

Wywołałem ten problem przez mój /etc/hostsplik.

Miałem wirtualnego hosta, nazwijmy go www.effinwhthing.com

Nazwa hosta serwera to www2 .

Dodałem linię do mojej, /etc/hostsaby móc zwinąć rzeczy przeciwko wirtualnemu hostowi:

192.168.1.200         www.effinwhatever.com

Jak tylko usunąłem ten wiersz z mojego /etc/hosts, mój serwer Apache znów zaczął normalnie serwować (po ponownym uruchomieniu usługi). Dziwne.

Może być również istotne, że mój certyfikat SSL dotyczy domeny wieloznacznej.

James T. Snell
źródło
0

Miałem ten sam błąd certyfikatu AH01909: RSA . W moim przypadku miałem prawidłową serverNamewartość.

Przyczyną błędu był niepoprawny adres IP w <VirtualHost 10.11.12.13:443>definicji bezpiecznej witryny. Źle to napisałem!

Drew
źródło
-1

Upewnij się, że nazwa serwera jest dokładnie taka sama z danymi openssl x509 -in server.crt -noout -subjectwyjściowymi. jeśli istnieje www, nazwa_serwera również go potrzebuje. jeśli nie, nazwa_serwera musi usunąć www.

ekse
źródło