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 -DSSLCode: 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)ports.conf
Code: Select all
Listen 80
Listen 443Code: 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>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 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