Le certificat RSA configuré pour SERVER n'inclut PAS un ID qui correspond au nom du serveur


28

J'ai récemment démarré un serveur LAMP (toutes les dernières versions) avec WordPress dessus, et j'essaie d'installer un certificat SSL que j'ai récemment acheté. Lorsque je redémarre apachectl, error_log me donne ceci:

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

Alors que ssl_error_log me donne ceci:

[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

J'ai changé "ServerName" en ssl.confmon nom de serveur (dcturano.com) et redémarré apachectl, mais cette erreur se produit. Des idées pourquoi?

En passant, je n'ai pas défini le CommonName du serveur, cela pourrait-il être le problème?

Réponses:


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

Doit renvoyer le CN du certificat. C'est le nom que vous devez utiliser dans la directive ServerName et auquel vous connecter.


# openssl x509 -in server.crt -noout -subject Erreur lors de l'ouverture du certificat server.crt 140451499632288: erreur: 02001002: bibliothèque système: fopen: aucun fichier ou répertoire de ce type: bss_file.c: 398: fopen ('server.crt', ' r ') 140451499632288: erreur: 20074002: routines BIO: FILE_CTRL: lib système: bss_file.c: 400: impossible de charger le certificat
jmituzas

1
@jmituzas, vous devez changer server.crtdans openssl x509 -in server.crt -noout -subjectvotre placement server.crt
avivmg

4
De nos jours, pratiquement toutes les autorités de certification publiques émettent des certificats avec l' extension SubjectAlternativeName , et vous pouvez utiliser tout ou partie des noms de cette extension (ou tout nom correspondant à un caractère générique). OpenSSL n'affiche pas le SAN de manière isolée, mais vous pouvez faire quelque chose commeopenssl x509 -in cert -text | grep -A1 "Subject Alternative Name"
dave_thompson_085

1
Assurez-vous également d'ajouter la directive ServerName et de ne pas simplement définir l'adresse de l'hôte virtuel (ce qui s'est avéré être le problème dans mon cas).
hugovdberg

Cela a fait l'affaire. Valeur CN copiée localhostde la sortie de sudo openssl x509 -in /etc/ssl/certs/server.crt -noout -subjectas ServerName localhostin sudo nano /etc/httpd/conf.d/ssl.conf. J'utilise centos 7 dans vagabond.
Damodar Bashyal

2

Sinon, si, comme moi, vous n'utilisez même pas SSL, vous obtiendrez toujours ce message d'erreur car l'utilisation de SSL est activée par défaut. Dans ce cas, désactivez-le! Voici un extrait de config.d/ssl.conf:

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

7
J'ai noté votre réponse parce que la question indique explicitement qu'il a acheté un certificat. Je n'achète généralement pas des choses que je n'ai pas l'intention d'utiliser.
hugovdberg

2

J'ai eu le même problème, mais c'était pour une autre raison. Je le poste ici pour les futurs googleurs:

sur mon fichier de configuration apache2, au lieu d'avoir <VirtualHost *:443>, j'ai eu <VirtualHost *:80>. Dès que j'ai corrigé cela, le site était de nouveau opérationnel.


1

J'ai déclenché ce problème via mon /etc/hostsfichier.

J'avais un hôte virtuel , appelons-le www.effinwwhat.com

Le nom d'hôte du serveur était www2 .

J'ai ajouté une ligne à mon /etc/hostsafin que je puisse boucler des trucs contre l'hôte virtuel:

192.168.1.200         www.effinwhatever.com

Dès que j'ai supprimé cette ligne de mon /etc/hosts, mon serveur Apache a recommencé à fonctionner normalement (avec un redémarrage du service). Bizarre.

Il peut également être pertinent que mon certificat SSL soit pour un domaine générique.


0

J'ai eu le même AH01909: Erreur de certificat RSA . Dans mon cas, j'avais la bonne serverNamevaleur.

La cause de l'erreur était une adresse IP incorrecte dans la <VirtualHost 10.11.12.13:443>définition du site sécurisé. Je l'avais mal tapé!


-1

Assurez-vous que votre ServerName est exactement le même avec la openssl x509 -in server.crt -noout -subjectsortie. s'il y a www, ServerName en a également besoin. sinon, ServerName doit supprimer www.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.