Apache versteht nach SSL-Konfiguration kein http mehr
Hallo ML, ich habe einem apache 2.2.3 SSL beigebracht. Dazu habe ich ein Zertifikat gebaut, und folgendes der default-server.conf hinzugefügt: <IfDefine SSL> SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /etc/apache2/ssl.crt/server.crt SSLCertificateKeyFile /etc/apache2/ssl.key/server.key CustomLog /var/log/apache2/ssl_request_log ssl_combined </IfDefine> In /etc/sysconfig/apache2 ist das ssl-Modul hinzugefügt, und es wird auch das passende Serverflag gestartet. Server spricht auch ssl, und nach netstat macht er Port 80 und 443 auf. HTTP-Requests vom Browser werden aber jetzt mit Error-Code 400 beantwortet. Das access_log schreibt: 146.107.135.80 - - [26/Feb/2008:13:17:42 +0100] "GET /" 400 1022 "-" "-" Wie bringe ich meinen apache dazu, auch wieder http mit mir zu sprechen ? Die Dokumentation auf apache.org rät zu vhosts. Das würde ich aber nur ungerne machen, da mit diesem apache nur eine Domäne bedient werden muss. Gibt's da eine andere Möglichkeit ? Letzendlich muss auch nur der login SSL-verschlüsselt sein, alles andere kann ruhig plaintext sein. Danke. Bernd -- Bernd Lentes staatl. geprüfter Techniker Systemadministration Institut für Entwicklungsgenetik HelmholtzZentrum münchen Raum 35/1008f Ingolstädter Landstraße 1 85764 München-Neuherberg mailto:bernd.lentes@helmholtz-muenchen.de phoneto:089/3187-1241 faxto:089/3187-3826 http://www.helmholtz-muenchen.de/idg/ -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Bernd, Lentes, Bernd wrote:
ich habe einem apache 2.2.3 SSL beigebracht. Dazu habe ich ein Zertifikat gebaut, und folgendes der default-server.conf hinzugefügt:
<IfDefine SSL> SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /etc/apache2/ssl.crt/server.crt SSLCertificateKeyFile /etc/apache2/ssl.key/server.key CustomLog /var/log/apache2/ssl_request_log ssl_combined </IfDefine>
Hat der Apache VOR der SSL betreffenden Umkonfigurierung HTML-Seiten korrekt auf Port 80 ausgeliefert? Ist das die einzige Änderung, die Du an der /etc/apache2/default-server.conf vorgenommen hast? Hast Du an anderen Config-Dateien unterhalb von /etc/apache2 etwas geändert? Kommt eine Meldung im error_log ? Joachim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Bernd Lentes staatl. geprüfter Techniker Systemadministration Institut für Entwicklungsgenetik HelmholtzZentrum münchen Raum 35/1008f Ingolstädter Landstraße 1 85764 München-Neuherberg mailto:bernd.lentes@helmholtz-muenchen.de phoneto:089/3187-1241 faxto:089/3187-3826 http://www.helmholtz-muenchen.de/idg/
-----Original Message----- From: Joachim Marx [mailto:suselists@socim.info] Sent: Tuesday, February 26, 2008 2:31 PM To: opensuse-de@opensuse.org Subject: Re: Apache versteht nach SSL-Konfiguration kein http mehr
Hat der Apache VOR der SSL betreffenden Umkonfigurierung HTML-Seiten korrekt auf Port 80 ausgeliefert? JA.
Ist das die einzige Änderung, die Du an der /etc/apache2/default-server.conf vorgenommen hast?
NEIN. ServerName und ServerAdmin. Sollte hier aber keinen Einfluß haben.
Hast Du an anderen Config-Dateien unterhalb von /etc/apache2 etwas geändert? JA. listen.conf: <IfDefine SSL> <IfDefine !NOSSL> <IfModule mod_ssl.c>
Listen 80 Listen 443 </IfModule> </IfDefine> </IfDefine> Ich dachte, daß sich die Listen-Anweisungen sonst gegenseitig ausschließen. Listen 80 stand vorher ausserhalb des IfDefine-Blocks. Hat aber nix gebracht. Und nat. Änderungen in /etc/sysconfig.d/apache2, wie im ersten posting geschrieben.
Kommt eine Meldung im error_log ?
Leider nein. Bernd
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Lentes, Bernd wrote:
ich habe einem apache 2.2.3 SSL beigebracht. Dazu habe ich ein Zertifikat gebaut, und folgendes der default-server.conf hinzugefügt:
<IfDefine SSL> SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /etc/apache2/ssl.crt/server.crt SSLCertificateKeyFile /etc/apache2/ssl.key/server.key CustomLog /var/log/apache2/ssl_request_log ssl_combined </IfDefine>
[...]
HTTP-Requests vom Browser werden aber jetzt mit Error-Code 400 beantwortet. Das access_log schreibt: 146.107.135.80 - - [26/Feb/2008:13:17:42 +0100] "GET /" 400 1022 "-" "-"
Ich schätze mal, dass Dein Apache jetzt auf allen lauschenden Ports SSL erwartet und Du deshalb den Errorcode 400 (=Bad Request) bekommst. Die SSL-Engine wird ja nach Deiner Config gestartet unabhängig vom Port auf dem die Anfrage eingeht. Deswegen ist es sinnvoll die SSL-Config in einen Virtualhost zu stecken, der nur auf Port 443 hört. Bei Anfragen auf Port 80 rechnet Dein Apache dann nicht mehr mit SSL und es sollte funktioneiren wie gewünscht. Joachim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-----Original Message----- From: Joachim Marx [mailto:suselists@socim.info] Sent: Tuesday, February 26, 2008 3:33 PM To: opensuse-de@opensuse.org Subject: Re: Apache versteht nach SSL-Konfiguration kein http mehr
Ich schätze mal, dass Dein Apache jetzt auf allen lauschenden Ports SSL erwartet und Du deshalb den Errorcode 400 (=Bad Request) bekommst. Die SSL-Engine wird ja nach Deiner Config gestartet unabhängig vom Port auf dem die Anfrage eingeht. Deswegen ist es sinnvoll die SSL-Config in einen Virtualhost zu stecken, der nur auf Port 443 hört. Bei Anfragen auf Port 80 rechnet Dein Apache dann nicht mehr mit SSL und es sollte funktioneiren wie gewünscht.
Hallo Joachim, Ok. Und wie mache ich das genau ? Virtuelle hosts kann ich anlegen, habe ich schon mal gemacht. Aber der vhost für SSL soll die gleiche domain bedienen wie der Server, der auf Port 80 lauscht. Geht das ? Bernd
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Lentes, Bernd wrote:
Ok. Und wie mache ich das genau ? Virtuelle hosts kann ich anlegen, habe ich schon mal gemacht. Aber der vhost für SSL soll die gleiche domain bedienen wie der Server, der auf Port 80 lauscht. Geht das ?
Ja, das geht. Du kannst die beiden Templates nehmen, die in /etc/apache2/vhosts.d liegen. In "vhost-ssl.template " ist ja ein <VirtualHost _default_:443> definiert, d.h. der Apache antwortet auf Port 443 mit SSL, egal wie der Server angesprochen wird. Und "vhost.template" nimmst Du für die Konfiguration des Servers, wenn er auf Port 80 angesprochen wird. Beide Templates natürlich umbenennen - sie MÜSSEN auf ".conf" enden, damit sie eingelesen werden. Deine bisherige Konfig, die Du in default-server.conf hattest, entprechend in die beiden Config-Dateien in /etc/apache2/vhosts übertragen (ServerName, DocumentRoot etc.) HTH Joachim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Joachim, danke. Ich probier das mal. Muss ich NameVirtualHost in listen.conf einschalten ? Deine Vermutung war übrigens richtig. Er erwartet auf Port 80 https-requests. Wenn ich ein https://host:80 mache, kriege ich meine Webseite. Bernd
-----Original Message----- From: Joachim Marx [mailto:suselists@socim.info] Sent: Tuesday, February 26, 2008 4:05 PM To: opensuse-de@opensuse.org Subject: Re: Apache versteht nach SSL-Konfiguration kein http mehr
Lentes, Bernd wrote:
Ok. Und wie mache ich das genau ? Virtuelle hosts kann ich anlegen, habe ich schon mal gemacht. Aber der vhost für SSL soll die gleiche domain bedienen wie der Server, der auf Port 80 lauscht. Geht das ?
Ja, das geht.
Du kannst die beiden Templates nehmen, die in /etc/apache2/vhosts.d liegen. In "vhost-ssl.template " ist ja ein <VirtualHost _default_:443> definiert, d.h. der Apache antwortet auf Port 443 mit SSL, egal wie der Server angesprochen wird.
Und "vhost.template" nimmst Du für die Konfiguration des Servers, wenn er auf Port 80 angesprochen wird.
Beide Templates natürlich umbenennen - sie MÜSSEN auf ".conf" enden, damit sie eingelesen werden.
Deine bisherige Konfig, die Du in default-server.conf hattest, entprechend in die beiden Config-Dateien in /etc/apache2/vhosts übertragen (ServerName, DocumentRoot etc.)
HTH Joachim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Bernd, noch ein Nachtrag zu meiner Mail von eben: Trage ans Ende der /etc/apache2/listen.conf noch diese beiden Zeilen ein, falls nicht bereits an anderer Stelle vorhanden: NameVirtualHost *:80 NameVirtualHost *:443 Könntest Du im Prinzip auch in eine der anderen Konfig-Dateien schreiben, die aus httpd.conf _vor_ vhosts.d/*.conf eingelesen wird. Joachim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Joachim, danke noch mal. Ich probier's aus. Melde morgen wahrscheinlich/hoffentlich Erfolg hier. Bernd
-----Original Message----- From: Joachim Marx [mailto:suselists@socim.info] Sent: Tuesday, February 26, 2008 4:14 PM To: opensuse-de@opensuse.org Subject: Re: Apache versteht nach SSL-Konfiguration kein http mehr
Hallo Bernd,
noch ein Nachtrag zu meiner Mail von eben:
Trage ans Ende der /etc/apache2/listen.conf noch diese beiden Zeilen ein, falls nicht bereits an anderer Stelle vorhanden: NameVirtualHost *:80 NameVirtualHost *:443
Könntest Du im Prinzip auch in eine der anderen Konfig-Dateien schreiben, die aus httpd.conf _vor_ vhosts.d/*.conf eingelesen wird.
Joachim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Joachim, hat geklappt. Danke. Drei Fragen/Anmerkungen noch: 1. Inwieweit haben Einstellungen in der httpd.conf noch Einfluß auf die virtuellen hosts ? Mir geht's z.B. um folgendes: -------------- # forbid access to the entire filesystem by default <Directory /> Options None AllowOverride None Order deny,allow Deny from all </Directory> # use .htaccess files for overriding, AccessFileName .htaccess # and never show them <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> ---------------- Die sind ja für die Sicherheit sehr wichtig. Gelten die auch für alle vhosts, oder muss ich die in jeder vhost.conf erneut eintragen ? 2. Ist es sinnvoll/notwendig, für jeden vhost eine eigene .conf zu machen ? 3. Ich habe zwei vhosts.conf angelegt: ------------------------------------ pc52842:/etc/apache2/vhosts.d # ll total 40 -rw-r--r-- 1 root root 9284 Feb 27 17:20 vhost-ssl.conf -rw-r--r-- 1 root root 9222 Nov 10 01:33 vhost-ssl.template -rw-r--r-- 1 root root 4257 Feb 26 18:23 vhost.conf -rw-r--r-- 1 root root 4310 Nov 10 01:33 vhost.template ------------------------------------ In der vhost-ssl.conf steht die <VirtualHost>-Direkte innerhalb von zwei <IfDefine>-Direktiven. Dann ergibt ein httpd2 -t einen Mecker, und httpd2 -S zeigt, daß diese Datei gar nicht geparst wird. Packe ich die <IfDefine>-Direktiven in die <VirtualHost>-Direktive, gibt's keinen Mecker, und beide Dateien werden geparst !?! Ist das ein bug ? Bernd
-----Original Message----- From: Lentes, Bernd [mailto:bernd.lentes@helmholtz-muenchen.de] Sent: Tuesday, February 26, 2008 4:20 PM To: opensuse-de@opensuse.org Subject: RE: Apache versteht nach SSL-Konfiguration kein http mehr
Hallo Joachim,
danke noch mal. Ich probier's aus. Melde morgen wahrscheinlich/hoffentlich Erfolg hier.
Bernd
-----Original Message----- From: Joachim Marx [mailto:suselists@socim.info] Sent: Tuesday, February 26, 2008 4:14 PM To: opensuse-de@opensuse.org Subject: Re: Apache versteht nach SSL-Konfiguration kein http mehr
Hallo Bernd,
noch ein Nachtrag zu meiner Mail von eben:
Trage ans Ende der /etc/apache2/listen.conf noch diese beiden Zeilen ein, falls nicht bereits an anderer Stelle vorhanden: NameVirtualHost *:80 NameVirtualHost *:443
Könntest Du im Prinzip auch in eine der anderen Konfig-Dateien schreiben, die aus httpd.conf _vor_ vhosts.d/*.conf eingelesen wird.
Joachim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Bernd, Lentes, Bernd wrote:
1. Inwieweit haben Einstellungen in der httpd.conf noch Einfluß auf die virtuellen hosts ? Mir geht's z.B. um folgendes:
-------------- # forbid access to the entire filesystem by default <Directory /> Options None AllowOverride None Order deny,allow Deny from all </Directory>
# use .htaccess files for overriding, AccessFileName .htaccess # and never show them <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> ----------------
Die sind ja für die Sicherheit sehr wichtig. Gelten die auch für alle vhosts, oder muss ich die in jeder vhost.conf erneut eintragen ?
Die genannten Einstellungen gelten so für den gesamten Server, es sei denn sie werden an späterer Stelle geändert. Die Konfiguration wird in der Reihenfolge abgearbeitet, wie sie eingelesen wird. Spätere Einstellungen überschreiben gegebenenfalls frührere. Die von Dir oben genannten sicherheitsrelevanten Einstellungen stehen ja deshalb in der httpd.conf , weil hier das Parsen der Konfiguration startet. Sofern Du sie also in weiteren eingelesenen Konfigdateien nicht überschrieben hast, gelten sie auch für deine virtual hosts.
2. Ist es sinnvoll/notwendig, für jeden vhost eine eigene .conf zu machen ?
Es ist nicht notwendig. "Früher" war es ja üblich, die gesamte Apache-Konfig innerhalb einer einzigen Datei httpd.conf zu halten. Das könnte man auch weiterhin so machen. Es ist aber aus Gründen der Übersichtlichkeit äusserst sinnvoll und sehr ratsam, die Konfiguration der einzelnen vhosts in jeweils getrennten Dateien vorzuhalten.
3. Ich habe zwei vhosts.conf angelegt: ------------------------------------ pc52842:/etc/apache2/vhosts.d # ll total 40 -rw-r--r-- 1 root root 9284 Feb 27 17:20 vhost-ssl.conf -rw-r--r-- 1 root root 9222 Nov 10 01:33 vhost-ssl.template -rw-r--r-- 1 root root 4257 Feb 26 18:23 vhost.conf -rw-r--r-- 1 root root 4310 Nov 10 01:33 vhost.template ------------------------------------ In der vhost-ssl.conf steht die <VirtualHost>-Direkte innerhalb von zwei <IfDefine>-Direktiven. Dann ergibt ein httpd2 -t einen Mecker, und httpd2 -S zeigt, daß diese Datei gar nicht geparst wird. Packe ich die <IfDefine>-Direktiven in die <VirtualHost>-Direktive, gibt's keinen Mecker, und beide Dateien werden geparst !?! Ist das ein bug ?
Nein, das ist kein Bug. Der erlaubte Kontext für <IfDefine> ist: Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |Der erlaubte Kontext fúr <VirtualHost> ist: | Serverkonfiguration Mit anderen Worten: <IfDefine> darf innerhalb einer <VirtualHost>-Direktive vorkommen, aber <VirtualHost> darf nur in in der Serverkonfiguration stehen, nicht innerhalb einer <IfDefine> -Direktive. |Empfehlung: Apache-Manual gründlicher lesen ;-) | Joachim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Joachim,
-----Original Message----- From: Joachim Marx [mailto:suselists@socim.info] Sent: Wednesday, February 27, 2008 8:12 PM To: opensuse-de@opensuse.org Subject: Re: Apache versteht nach SSL-Konfiguration kein http mehr
Die genannten Einstellungen gelten so für den gesamten Server, es sei denn sie werden an späterer Stelle geändert. Die Konfiguration wird in der Reihenfolge abgearbeitet, wie sie eingelesen wird. Spätere Einstellungen überschreiben gegebenenfalls frührere. Die von Dir oben genannten sicherheitsrelevanten Einstellungen stehen ja deshalb in der httpd.conf , weil hier das Parsen der Konfiguration startet. Sofern Du sie also in weiteren eingelesenen Konfigdateien nicht überschrieben hast, gelten sie auch für deine virtual hosts.
2. Ist es sinnvoll/notwendig, für jeden vhost eine eigene .conf zu machen ?
Es ist nicht notwendig. "Früher" war es ja üblich, die gesamte Apache-Konfig innerhalb einer einzigen Datei httpd.conf zu halten. Das könnte man auch weiterhin so machen. Es ist aber aus Gründen der Übersichtlichkeit äusserst sinnvoll und sehr ratsam, die Konfiguration der einzelnen vhosts in jeweils getrennten Dateien vorzuhalten.
Nein, das ist kein Bug. Der erlaubte Kontext für <IfDefine> ist: Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |Der erlaubte Kontext fúr <VirtualHost> ist: | Serverkonfiguration
Mit anderen Worten: <IfDefine> darf innerhalb einer <VirtualHost>-Direktive vorkommen, aber <VirtualHost> darf nur in in der Serverkonfiguration stehen, nicht innerhalb einer <IfDefine> -Direktive.
|Empfehlung: Apache-Manual gründlicher lesen ;-)
Danke für die Infos. Die Direktiven im falschen Kontext war von SuSE so. :-)) Bernd
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (2)
-
Joachim Marx
-
Lentes, Bernd