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!

Kolja Engelmann

Technikfan, Freizeitprogrammierer, selbsternannter Toolking und vermutlich größter Drachenfan Deutschlands blogged hier die Lösungen zu IT-Problemen die ihm über den Weg laufen, kleine Softwaretools, nostalgische Anfälle und missbraucht das Ganze gern auch mal als privates Tagebuch und Fotoalbum.

Das könnte dich auch interessieren …

5 Antworten

  1. Seb sagt:

    Hu hu,

    vielen Dank für die Anleitung. Hast du schon eine Lösung gefunden wie du am besten SSLRequireSSL aus der Config bekommst ohne das Plesk es jedes mal wieder rein schreibt?

    • Oh, das habe ich tatsächlich. Plesk holt sich alle seine Einstellungen aus Templatedateien.
      Die entsprechende Templatedatei findet sich hier:
      /usr/local/psa/admin/conf/templates/default/domain/domainVirtualHost.php Dort kann man die Zeile löschen oder auskommentieren. Ich füge das oben mal ein.

  2. Fabian sagt:

    Wo liegen denn bei Plesk 12 die conf Dateien?

    Danke

  3. Fabian sagt:

    Und zack nach dem Update auf 12.5 gehen die Probleme wieder los 🙂

    Gut das es Google gibt 🙂 Danke

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert