Apache2.0/SSL - Läuft stillschweigend nicht

Apache, Lighttpd, nginx, Cherokee
dtdesign
Posts: 391
Joined: 2006-09-05 21:12
Location: Berlin

Apache2.0/SSL - Läuft stillschweigend nicht

Post by dtdesign »

Hallo,

mittlerweile befinde ich mich am Rande der Frustration, ich versuche nun schon seid 2 Tagen dem Apache einen VHost mit SSL-Verschlüsselung einzuprügeln.

Verwendeten Software:

Debian Sarge 3.1 (Kernel 2.6.x)
Apache 2.0.54 (Package von Debian)
PHP 5.1.6 (aktuelles Packet von dotdeb.org)
OpenSSL 0.9.7e-3sarge1

Bis jetzt wurde der Apache nur für http verwendet, soll jedoch zukünftig auch eine Domain als vhost mit SSL bereit stellen.

Überprüfung, ob der Apache auch brav horcht:

ps auxf | grep apache

Code: Select all

root     19896  0.0  0.0  1628  480 pts/6    S+   21:20   0:00  |               _ grep apache
root     19768  0.0  0.3  9048 3728 ?        Ss   21:07   0:00 /usr/sbin/apache2 -k start -DSSL
www-data 19769  0.0  0.2  8336 2132 ?        S    21:07   0:00  _ /usr/sbin/apache2 -k start -DSSL
www-data 19770  0.0  0.4 231348 4824 ?       S    21:07   0:00  _ /usr/sbin/apache2 -k start -DSSL
www-data 19772  0.0  0.3 230548 4056 ?       S    21:07   0:00  _ /usr/sbin/apache2 -k start -DSSL
lsof -i :443

Code: Select all

COMMAND   PID     USER   FD   TYPE  DEVICE SIZE NODE NAME
apache2 19768     root    4u  IPv4 5432597       TCP *:https (LISTEN)
apache2 19769 www-data    4u  IPv4 5432597       TCP *:https (LISTEN)
apache2 19770 www-data    4u  IPv4 5432597       TCP *:https (LISTEN)
apache2 19772 www-data    4u  IPv4 5432597       TCP *:https (LISTEN)
Zur Konfiguration des Apache-Servers:

ports.conf

Code: Select all

Listen 80
Listen 443
default (/etc/apache2/sites-available/)

Code: Select all

NameVirtualHost 217.160.180.75:80
NameVirtualHost 217.160.180.75:443

<IfDefine SSL>
        AddType application/x-x509-ca-cert .crt
        AddType application/x-pkcs7-crl .crl
        SSLRandomSeed startup builtin
        SSLRandomSeed connect builtin
        SSLPassPhraseDialog builtin
        SSLSessionCache shm:/var/cache/apache2/ssl_scache(512000)
        SSLSessionCacheTimeout 300
        SSLMutex file:/var/cache/apache2/ssl_mutex
</IfDefine>

<VirtualHost _default_:80>
        ServerName      www.domain.de
        ServerAlias     *.domain.de
        ServerAdmin     webmaster@domain.de

        DocumentRoot    /home/srv/www/domain
        suPHP_Engine    on
        suPHP_UserGroup dtdesign users

        AddHandler      x-httpd-php .php .php3 .php4 .php5
        suPHP_AddHandler x-httpd-php

        <Directory />
                Options FollowSymLinks MultiViews
                AllowOverride None
        </Directory>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined
        ServerSignature On
</VirtualHost>
dtcms-ssl (/etc/apache2/sites-available/)

Code: Select all

<VirtualHost www.domain2.de:443>
        ServerName      www.domain2.de:443
        ServerAdmin     sysadmin@domain2.de

        DocumentRoot    /home/srv/www/domain2

        suPHP_Engine    on
        suPHP_UserGroup dtdesign users

        AddHandler      x-httpd-php .php .php3 .php4 .php5
        suPHP_AddHandler x-httpd-php

        <Directory />
                Options FollowSymLinks MultiViews
                AllowOverride All
        </Directory>

        <IfModule sapi_apache2.c>
                php_admin_value open_basedir    "/tmp:/home/srv/www/domain2:/home/srv/www/configs"
        </IfModule>
        ErrorLog        /home/srv/www/logs/domain2/error.log
        TransferLog     /home/srv/www/logs/domain2/access.log
        CustomLog       /home/srv/www/logs/domain2/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%$

        SSLEngine On
        SSLCertificateFile      /etc/apache2/ssl/domain2/server.crt
        SSLCertificateKeyFile   /etc/apache2/ssl/domain2/server.key
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
        SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0

        # Possible values include: debug, info, notice, warn, error,
        # alert, emerg.
        LogLevel warn

        #CustomLog /var/log/apache2/access.log combined
        ServerSignature On
</VirtualHost>
Das SSL-Zertifikat wurde mittels OpenSSL erzeugt und selbst signiert.

Das Problem:

Der Server läuft ordnungsgemäß, alle Seiten über http werden wie gewohnt ausgeliefert, jedoch reagiert der Server über https nicht. Die access.log (in /var/log/apache2/) sowie die error.log (ebenfalls in /var/log/apache2/) bleibt unangetastet. Sobald ich absichtlich einen Fehler reinhaue, erscheint dieser dort.

Anhand der unzähligen Versuche die ich bereits gemacht habe, bin ich mir zu 99,99% sicher, dass der Apache auf SSL horcht und entsprechend reagiert. Tatsache ist, dass er einfach... stumm bleibt. Als ich versucht habe, von einem 2. Rootserver per openssl s_client mich zu verbinden, kam eine ordnungsgemäße Verbindung zu stande, Zertifikate werden übertragen und der obligatorische SSL-Handshake kam.

Mittlerweile habe ich Unmengen an einschlägigen Foren durchforstet, Google in den Wahnsinn getrieben...

Schlusswort ;)

Ich bin für jeden Denkanstoss / Lösungsvorschlag / etc dankbar.

PS: Es handelt sich bei dem Server um einen Root-Server, sprich volle Befehlsgewalt (nicht wie bei diesen komischen vServern, die waren mir noch nie geheuer ^^).
PPS: domain.de und domain2.de sind rein fikitiv und stehen so bestimmt nicht in den Konfigurationsdateien ;)

Mit freundlichen Grüßen
Alex aka. dtdesign
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Apache2.0/SSL - Läuft stillschweigend nicht

Post by oxygen »

Wenn du die Domains nicht zensieren würdest, könnte man besser helfen.
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: Apache2.0/SSL - Läuft stillschweigend nicht

Post by flo »

Wo hast Du den ServerName in der Schreibweise her?

flo.
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main

Re: Apache2.0/SSL - Läuft stillschweigend nicht

Post by aubergine »

Setze auserhalb der Virtualhosts:

Code: Select all

ServerName 217.160.180.75:443
ServerName 217.160.180.75:80
Editiere:

Code: Select all

<VirtualHost www.domain2.de:443>
zu

Code: Select all

<VirtualHost 217.160.180.75:443> 
und im selben VirtualHost

Code: Select all

ServerName      www.domain2.de:443
zu

Code: Select all

ServerName      domain2.de
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: Apache2.0/SSL - Läuft stillschweigend nicht

Post by flo »

Probier das mal - ein kompletter Block, bei mir in einer extra-Datei und per ifmodule includet. NameVirtualHost steht auf "*:80", weil auf 443 kein Namevirtualhosting stattfindet. Die IP im VirtualHost brauchst Du IMHO nur, wenn Du mehrere IPs trennen möchtest.

Code: Select all

SSLRandomSeed startup builtin
SSLRandomSeed connect builtin

Listen 443

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl

SSLPassPhraseDialog  builtin
SSLSessionCache         dbm:/usr/local/apache2/logs/ssl_scache
SSLSessionCacheTimeout  300
SSLMutex  file:/usr/local/apache2/logs/ssl_mutex


<VirtualHost _default_:443>
    DocumentRoot "/home/domain01/htdocs"
    ServerName domain-extra.de
    ServerAdmin info@domain.de
    ErrorLog /home/domain01/logs/error_log
    TransferLog /home/domain01/logs/ssl_access_log
    CustomLog /home/domain01/logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"

    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /usr/local/apache2/conf/ssl/server.crt
    SSLCertificateKeyFile /usr/local/apache2/conf/ssl/server.key

    <Directory "/home/domain01/htdocs">
        AllowOverride All 
        Options -Indexes FollowSymLinks
    </Directory>

    <FilesMatch ".(cgi|shtml|phtml|php3|php|php4?)$">
        SSLOptions +StdEnvVars
    </FilesMatch>

    <Directory "/home/domain01/cgi-bin">
        SSLOptions +StdEnvVars
    </Directory>

    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</VirtualHost>

Code: Select all

NameVirtualHost *:80
flo.
tk
Posts: 17
Joined: 2006-08-30 17:32

Re: Apache2.0/SSL - Läuft stillschweigend nicht

Post by tk »

Hi,

wenn ich via https auf deine IP gehe bekomme ich eine Zertifikatsfehlermeldung. Vielleicht solltest du erstmal Demozertifikate verwenden.

Gruß

TK
dtdesign
Posts: 391
Joined: 2006-09-05 21:12
Location: Berlin

Re: Apache2.0/SSL - Läuft stillschweigend nicht

Post by dtdesign »

oxygen wrote:Wenn du die Domains nicht zensieren würdest, könnte man besser helfen.
Die Domains sind nicht relevant ;)
flo wrote:Wo hast Du den ServerName in der Schreibweise her?
Irgendwo gelesen, hatte inzwischen nahezu alles ausprobiert...
tk wrote:wenn ich via https auf deine IP gehe bekomme ich eine Zertifikatsfehlermeldung. Vielleicht solltest du erstmal Demozertifikate verwenden.
Gute Idee.

Ergebnis sämtlicher Tipps (u.a. von flo):

Nichts. Es funktioniert weiterhin nicht und mittlerweile komme ich mir unfähig vor. Beim letzten Mal hab ich das unter einer halben Stunde fehlerfrei zum laufen gebracht :(

Momentan habe ich mir ein Demozertifikat vom apache generieren lassen, selbes Spiel.

Zu den Domains, es handelte sich um http://www.argoedv.de und http://www.deltateam-cms.info. Jedoch werdet ihr mir Recht geben, dass dies unrelevant ist ;)

Gruß
dtdesign
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: Apache2.0/SSL - Läuft stillschweigend nicht

Post by flo »

Also jetzt mal Klartext - Xe das halt nachher aus ...

https://217.160.180.75/ (dig http://www.argoedv.de) bringt bei mir einen Zertifikatsfehler (per se nicht schlecht) und einen 403er Fehler mit IIS4-Kennung - hast Du mod_security am Laufen??

Was sagen die Logs?

flo.
dtdesign
Posts: 391
Joined: 2006-09-05 21:12
Location: Berlin

Re: Apache2.0/SSL - Läuft stillschweigend nicht

Post by dtdesign »

Ja, es läuft mod_security, hatte aus Langeweile dort Microsoft/IIS-4.0 eingetragen, auch wenn es utopisch ist ;)

Anbei die Logauszüge. An sich nichts merkwürdiges...

Gruß
dtdesign

access.log

Code: Select all

87.123.66.30 - - [06/Sep/2006:19:40:30 +0200] "GET / HTTP/1.1" 403 1130
87.123.66.30 - - [06/Sep/2006:19:40:31 +0200] "GET /favicon.ico HTTP/1.1" 404 1164
ssl_request_log

Code: Select all

[06/Sep/2006:19:40:30 +0200] 87.123.66.30 TLSv1 RC4-SHA "GET / HTTP/1.1" 1130
[06/Sep/2006:19:40:31 +0200] 87.123.66.30 TLSv1 RC4-SHA "GET /favicon.ico HTTP/1.1" 1164
error.log

Code: Select all

[Wed Sep 06 19:41:51 2006] [error] [client 84.56.87.61] File does not exist: /home/srv/www/argoedv/favicon.ico, referer: http://www.argoedv.de/$
[Wed Sep 06 19:42:04 2006] [error] [client 84.56.87.61] Directory index forbidden by rule: /home/srv/www/dtcms/, referer: http://www.rootforum.$
[Wed Sep 06 19:42:04 2006] [error] [client 84.56.87.61] File does not exist: /home/srv/www/dtcms/favicon.ico, referer: http://www.deltateam-cms$
[Wed Sep 06 19:42:10 2006] [error] [client 84.56.87.61] Directory index forbidden by rule: /home/srv/www/dtcms/
[Wed Sep 06 19:42:10 2006] [error] [client 84.56.87.61] File does not exist: /home/srv/www/dtcms/favicon.ico, referer: http://www.deltateam-cms$
[Wed Sep 06 19:42:16 2006] [error] [client 84.56.87.61] Directory index forbidden by rule: /home/srv/www/dtcms/, referer: http://www.rootforum.$
[Wed Sep 06 19:44:07 2006] [error] [client 87.123.66.30] Invalid URI in request Host www.argoedv.de
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: Apache2.0/SSL - Läuft stillschweigend nicht

Post by flo »

Ich hatte die Vermutung, daß mod_security da was blockt, aber der 403er Fehler kommt beim "/" - wenn ich "/index.html" anfordere, kommt ein 404er Fehler - IMHO läuft der Hobel, immerhin ist er ja schon soweit, daß er Dateien sucht. Stimmen a) die DocumentRoot und b) der DirectoryIndex.

flo.
dtdesign
Posts: 391
Joined: 2006-09-05 21:12
Location: Berlin

Re: Apache2.0/SSL - Läuft stillschweigend nicht

Post by dtdesign »

Habe mal eine index.php mit dem Inhalt "Kekse..." hinterlegt, vielleicht wird die angezeigt. Tatsache ist, dass ich von meinem PC aus, gar nichts angezeigt bekomme. Gleiches gilt für die PCs in meiner Schule (IE6/Opera9/FF).

Stinkt nach einem defekten Zertifikat, obwohl ich das von apache generierte verwende...

Hat jemand noch eine Idee, wo der Wurm sein könnte?

@flo: Dir schon Mal besten Dank für deine schnelle & kompetente Hilfe, so konnte ich / konnten wir das ganze schon einmal eingrenzen ;)

Gruß
dtdesign
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: Apache2.0/SSL - Läuft stillschweigend nicht

Post by flo »

Kommt bei mir gar nichts - null, nada - scheint also zu funktionieren.

flo.
neffe
Posts: 25
Joined: 2002-08-14 17:44
Location: Berlin

Re: Apache2.0/SSL - Läuft stillschweigend nicht

Post by neffe »

Hallo,

die Verbindung bringt `nen Fehler -8182, das ist nicht der Apache, das ist das Zertifikat selber.

Wenn das ein selbst erstelltes Zertifikat ist, würde ich mal ein neues erstellen.

Wichtig ist, das alle Pflichtfelder ausgefüllt werden und der Key kein Passwort hat.

Gruß Neffe