Website-Icon Digital Native

mod_spdy und der ‚SSL connection required‘ Fehler

Ich wollte testweise Google SPDY auf meinem Server installieren, um mich einmal selbst von der angeblich gigantischen Geschwindigkeitszunahmen zu überzeugen. Die Installation von SPDY gestaltete sich als relativ einfach. Zunächst muss man sich den nötigen Link des Ubuntu/Debian Packages von Googles Projektseite besorgen (in diesem Fall mod_spdy 32-bit .deb (Debian/Ubuntu)). Danach geht es schon los mit der Installation:

wget https://dl-ssl.google.com/dl/linux/direct/mod-spdy-beta_current_i386.deb
dpkg -i mod-spdy-*.deb
apt-get -f install
service apache2 restart

Fertig. Meh, leider doch nicht, denn SPDY basiert auf SSL. Keine SPDY Verbindung ohne SSL-Verschlüsselung. Und was braucht man für SSL? Ein Zertifikat. Zwar ist der Vorgang sich ein gültiges Zertifikat zu erstellen nicht trivial, aber im Internet gibt es gute Tutorials und auch kostenlose Zertifikate. Ich folgte dem sehr guten Tutorial bei www.dermute.de und erstellte mir dadurch ein von https://www.startssl.com/ signiertes SSL-Zertifikat. Natürlich hätte ich mir auch ein Zertifikat bei der CaCert erstellen können, wo ich seit einigen Jahren Assurer bin. Den Grund dafür erkläre ich später mal.

So, mod_spdy ist installiert, ein SSL Zertifikat ebenso, alles zusammengefügt und ordentlich umgerührt, dann sollte es doch jetzt eigentlich…nope, wieder nix. Das Errorlog plärrt:

access to /var/www/vhosts/kolja-engelmann.de/httpdocs/blog failed, reason: SSL connection required

Der Pudel liegt hier in der Option  SSLRequireSSL begraben und ist bekannt.

The issue is a quirk of how mod_spdy works: although the actual network connection to the client uses SSL encryption, the SPDY stream requests are handled internally using „virtual“ connections for which mod_ssl is disabled. Unfortunately, this means that mod_ssl thinks that these requests are not being served over SSL, so it denies access.

Nun, das bedeutet also, dass man momentan nur entweder SSL, oder SPDY nutzen kann, solange die Option

SSLRequireSSL

gesetzt ist. Also rasch die aktuelle vhost-config Datei unter

/var/www/vhosts/kolja-engelmann.de/conf

bearbeitet, die Option 

SSLRequireSSL

gelöscht und den Webserver neu gestartet. Siehe da, im Chrome webbrowser kann man nach Eingabe der URL chrome://net-internals/#spdy erkennen, dass SPDY nun funktioniert.

Bleibt eigentlich nur noch Plesk (womit dieser Webserver konfiguriert wird) beizubringen nicht stets das

SSLRequireSSL

Flag zu setzen. Ich befürchte, dass mit der nächsten Konfigurationsänderung das nämlich wieder auftauchen wird. Also editiere ich die Datei /usr/local/psa/admin/conf/templates/default/domain/domainVirtualHost.php in der das Grundgerüst für die vhost Datei definiert wird und kommentiere die entsprechende Zeile aus.

Geschafft!

Die mobile Version verlassen