"Server sollte SSL-fähig sein, aber es ist kein Zertifikat konfiguriert [Hinweis: SSLCertificateFile]" Fehler

21

Nach dem kürzlich erfolgten Upgrade von Apache2 auf Version 2.2.31 habe ich ein seltsames Verhalten bei der Einrichtung von SSL VirtualHost festgestellt.

Einige der von mir gehosteten Websites zeigten das Zertifikat für den Standardhost an, auch wenn der Client dies Server Name Identificationwusste, und dies geschah nur bei einigen wenigen. Dies ist die übliche Pass-Warnung von Firefox / Chrome, dass Sie möglicherweise betrogen werden, wenn Sie in Ihrem Homebanking surfen, aber das war einfach nicht der Fall.

Klar, wenn der Server host.hostingdomain.orgüber ein eigenes SSL verfügt und versucht, auf das https://www.hostedsite.orgBerichtszertifikat zuzugreifen host.hostingdomain.org, haben einige https://www.hostedsite.medas richtige Zertifikat gemeldet.

Alle Sites werden an Port 443 unter derselben IP-Adresse gehostet. In Wahrheit funktioniert VirtualHosting auf der HTTP-Seite und leitet SNI-fähige Clients automatisch zu SSL um, sodass es mit SNI-nicht-fähigen Clients abwärtskompatibel ist.

Wenn Sie die Fehlerprotokolle für die fehlerhaften VirtualHosts untersuchen, wird der folgende Text angezeigt

[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 mit SSLCertificateFile richtig konfiguriert.

Die Frage ist offensichtlich: Wie kann man das beheben?

usr-local-ΕΨΗΕΛΩΝ
quelle

Antworten:

38

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

Lösung 1: Upgrade auf den neuesten Stall

Lösung 2: Bearbeiten listen.conf

Ersetzen Sie Listen *:443(oder Listen 443entsprechend Ihrem Setup) durchListen *:443 http

Kredit

usr-local-ΕΨΗΕΛΩΝ
quelle
1
Vielen Dank für den Hinweis! Du hast mir viele Fragen erspart ... Ich frage mich, warum Apache das Leben schwerer macht !?
18.
2
Lösung 2: Sollte das httpd.conf sein, nicht listen.conf
zzapper
1
Beachten Sie, das ist mir heute Morgen passiert ... am Ende musste ich dieses "http" zu der Listen-Zeile in /etc/httpd/conf.d/ssl.conf hinzufügen - oh, ich musste kein Downgrade durchführen ...
Scott
Die Lösungen sind alternativ, Sie müssen kein Downgrade durchführen, wenn Sie listen.conf
usr-local-ΕΨΗΕΛΩΕΨΗΕΛ hinzufügen.
10

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

edit /etc/apache2/ports.conf (für Ubuntu oder httpd.conf)

Ändern Sie "Listen 443" in "Listen 443 http" unter ssl_module

Gerechtigkeit O.
quelle
Dies ist bereits in der akzeptierten Antwort.
Sven
2
Die akzeptierte Antwort scheint veraltet zu sein. Diese Antwort war nützlicher und genauer. +1
Parag
Diese Antwort gilt für Apache auf meinem Apache2.4-Lampenstapel, Ubuntu. Andere Antwort ist "listen.conf" - sollte ports.conf sein
Nick
2

Eine andere Lösung besteht darin, sicherzustellen, dass alle Ihre: 443-Vhosts die TLS-Konfiguration enthalten.

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

François Marier
quelle
Das war mein Problem. Ich habe einen vhost in meinem dupliziert, httpd.confaber die Zeilen, in denen die TLS-Konfiguration angegeben ist, wurden nicht eingefügt . Das Hinzufügen der verschiedenen TLS-Einstellungen in (SSLEngine, SSLCipherSuite, SSLCertificateFile und SSLCertificateKeyFile) hat das Problem behoben.
rinogo