Erreur «Le serveur doit être compatible SSL mais n'a pas de certificat configuré [Indice: SSLCertificateFile]»

21

Après avoir récemment mis à niveau Apache2 vers la version 2.2.31, j'ai trouvé un comportement étrange dans la configuration de SSL VirtualHost.

Certains des sites Web que j'héberge montraient le certificat de l'hôte par défaut même si le client était au Server Name Identificationcourant, et cela ne s'est produit qu'avec quelques-uns d'entre eux. Cela apparaît comme l'avertissement de passeport commun de Firefox / Chrome à propos de votre arnaque si vous naviguez sur votre banque à domicile, mais ce n'était tout simplement pas le cas.

Pour être clair, si le serveur host.hostingdomain.orga son propre SSL, tente d'accéder au https://www.hostedsite.orgcertificat de rapports pour host.hostingdomain.org, mais quelques-uns ont https://www.hostedsite.mesignalé le certificat correct.

Tous les sites sont hébergés sur la même adresse IP, sur le port 443. La vérité est que VirtualHosting fonctionne du côté HTTP et redirige automatiquement les clients SNI vers SSL, il est donc rétrocompatible avec les clients non SNI.

L'examen des journaux d'erreurs pour les VirtualHosts incriminés a montré le texte suivant

[Tue Dec 25 16:02:45 2012] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/path/to/www.site.org.conf:20)

et en fait, le vhost a été correctement configuré avec SSLCertificateFile.

La question est évidente: comment y remédier?

usr-local-ΕΨΗΕΛΩΝ
la source

Réponses:

38

Il se peut que ce soit un bug dans la version la plus récente d'Apache.

Solution 1: rétrograder vers la dernière version stable

Solution 2: modifier listen.conf

Remplacez Listen *:443(ou Listen 443selon votre configuration) parListen *:443 http

Crédit

usr-local-ΕΨΗΕΛΩΝ
la source
1
Merci de l'avoir signalé! Vous m'avez évité de me demander beaucoup ... Je me demande pourquoi apache rend la vie plus difficile!?
tftd
2
Solution 2: devrait-il s'agir de httpd.conf et non listen.conf
zzapper
1
Remarque, cela m'est arrivé ce matin ... j'ai fini par avoir besoin d'ajouter ce "http" à la ligne d'écoute dans /etc/httpd/conf.d/ssl.conf - oh, je n'ai pas eu à rétrograder ...
Scott
Les solutions sont alternatives, vous n'avez pas besoin de rétrograder si vous ajoutez listen.conf
usr-local-ΕΨΗΕΛΩΝ
10

J'ai eu exactement le même problème, et ce qui a fonctionné pour moi était incroyablement simple

éditez /etc/apache2/ports.conf (pour ubuntu ou httpd.conf)

changer "Listen 443" en "Listen 443 http" sous ssl_module

Justice O.
la source
C'est déjà dans la réponse acceptée.
Sven
2
La réponse acceptée semble dépassée. Cette réponse était plus utile et précise. +1
Parag
Cette réponse est applicable pour apache sur ma pile de lampes apache2.4, ubuntu. L'autre réponse est "listen.conf" - devrait être ports.conf
Nick
2

Une autre solution consiste à vous assurer que tous vos: 443 vhosts incluent la configuration TLS.

Ce problème a été récemment introduit dans Debian Wheezy et j'ai obtenu la solution sur http://blog.noizeramp.com/2010/10/03/apache-2-and-ssl-configuration/ .

François Marier
la source
C'était mon problème. J'ai dupliqué un vhost dans mon httpd.confmais n'ai pas réussi à inclure les lignes spécifiant la configuration TLS. L'ajout des divers paramètres TLS dans (SSLEngine, SSLCipherSuite, SSLCertificateFile et SSLCertificateKeyFile) a résolu le problème.
rinogo