Frage "Der Server sollte SSL-fähig sein, hat aber kein konfiguriertes Zertifikat [Hinweis: SSLCertificateFile]"


Nachdem ich kürzlich Apache2 auf Version 2.2.31 aktualisiert habe, habe ich ein merkwürdiges Verhalten im SSL VirtualHost Setup festgestellt.

Ein paar der Website, die ich hosste, zeigten das Zertifikat für den Standard-Host, selbst wenn der Client war Server Name Identification bewusst, und dies geschah nur mit ein paar von ihnen. Dies zeigt die übliche Warnung des Firefox / Chrome, dass Sie möglicherweise betrogen werden, wenn Sie in Ihrem Homebanking surfen, aber das war einfach nicht der Fall.

Um klar zu sein, wenn Server host.hostingdomain.org hat sein eigenes SSL und versucht zuzugreifen https://www.hostedsite.org meldet Zertifikat für host.hostingdomain.org, aber ein paar https://www.hostedsite.me meldete das korrekte Zertifikat.

Alle Websites werden unter der gleichen IP-Adresse auf Port 443 gehostet. Die Wahrheit ist, dass VirtualHosting auf der HTTP-Seite arbeitet und SNI-fähige Clients automatisch zu SSL umleitet, so dass es mit SNI-aware-Clients abwärtskompatibel ist.

Das Untersuchen von Fehlerprotokollen für die beanstandeten VirtualHosts zeigte den folgenden Text

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

und tatsächlich wurde der vhost korrekt mit SSLCertificateFile konfiguriert.

Die Frage ist offensichtlich: Wie kann man das beheben?


19
2017-12-26 00:43


Ursprung




Antworten:


Es kann vorkommen, dass es sich um einen Fehler in der neuesten Version von Apache handelt.

Lösung 1: Downgrade auf den neuesten Stable

Lösung 2: bearbeiten listen.conf

Ersetzen Listen *:443 (oder Listen 443 entsprechend Ihrer Einstellung) mit Listen *:443 http

Kredit


36
2017-12-26 00:43



Danke, dass du darauf hingewiesen hast! Du hast mich sehr um mich herum gewundert ... Ich frage mich, warum Apache das Leben härter macht !? - tftd
Lösung 2: Sollte das httpd.conf nicht listen.conf sein - zzapper
Beachten Sie, das ist mir heute Morgen passiert ... endete damit, dass ich das "http" zum Listen Lin in /etc/httpd/conf.d/ssl.conf hinzufügen musste - oh, ich musste nicht downgraden ... - Scott
Lösungen sind alternativ, Sie müssen kein Downgrade durchführen, wenn Sie listen.conf hinzufügen - usr-local-ΕΨΗΕΛΩΝ


Ich hatte genau das gleiche Problem, und was für mich funktionierte, war unglaublich einfach

editieren Sie /etc/apache2/ports.conf (für ubuntu oder httpd.conf)

ändern Sie "Listen 443" zu "Listen 443 http" unter ssl_module


8
2018-06-28 04:29



Dies ist bereits in der akzeptierten Antwort. - Sven♦
Die angenommene Antwort scheint veraltet. Diese Antwort war nützlicher und genauer. +1 - Parag Magunia
Diese Antwort gilt für Apache auf meinem Apache2.4 Lampenstack, Ubuntu. Andere Antwort ist "listen.conf" - sollte ports.conf sein - Nick


Eine andere Lösung dafür ist sicherzustellen, dass alle Ihre: 443 vhosts die TLS-Konfiguration enthalten.

Dieses Problem war kürzlich eingeführt in Debian Wheezy und ich habe die Lösung von http://blog.noizeramp.com/2010/10/03/apache-2-and-ssl-configuration/.


2
2018-01-11 19:49



Das war mein Problem. Ich habe einen vhost in meinem httpd.conf aber die Zeilen, die die TLS-Konfiguration angeben, konnten nicht eingefügt werden. Das Hinzufügen der verschiedenen TLS-Einstellungen (SSLEngine, SSLCipherSuite, SSLCertificateFile und SSLCertificateKeyFile) behob das Problem. - rinogo