{"id":26,"date":"2012-05-20T12:21:52","date_gmt":"2012-05-20T11:21:52","guid":{"rendered":"http:\/\/www.kolja-engelmann.de\/blog\/?p=26"},"modified":"2013-04-28T14:12:17","modified_gmt":"2013-04-28T13:12:17","slug":"mod_spdy-und-der-ssl-connection-required-fehler","status":"publish","type":"post","link":"https:\/\/www.kolja-engelmann.de\/blog\/2012\/05\/mod_spdy-und-der-ssl-connection-required-fehler\/","title":{"rendered":"mod_spdy und der &#8218;SSL connection required&#8216; Fehler"},"content":{"rendered":"<p>Ich wollte testweise Google SPDY auf meinem Server installieren, um mich einmal selbst von der angeblich gigantischen Geschwindigkeitszunahmen zu \u00fcberzeugen. Die Installation von SPDY gestaltete sich als relativ einfach. Zun\u00e4chst muss man sich den n\u00f6tigen Link des Ubuntu\/Debian Packages von <a title=\"mod_spdy Projektseite\" href=\"https:\/\/developers.google.com\/speed\/spdy\/mod_spdy\/\" target=\"_blank\">Googles Projektseite<\/a> besorgen (in diesem Fall <a href=\"https:\/\/dl-ssl.google.com\/dl\/linux\/direct\/mod-spdy-beta_current_i386.deb\">mod_spdy 32-bit .deb (Debian\/Ubuntu)<\/a>). Danach geht es schon los mit der Installation:<\/p>\n<pre class=\"lang:sh decode:true\">wget https:\/\/dl-ssl.google.com\/dl\/linux\/direct\/mod-spdy-beta_current_i386.deb\r\ndpkg -i mod-spdy-*.deb\r\napt-get -f install\r\nservice apache2 restart<\/pre>\n<p>Fertig. Meh, leider doch nicht, denn SPDY basiert auf SSL. Keine SPDY Verbindung ohne SSL-Verschl\u00fcsselung. Und was braucht man f\u00fcr SSL? Ein Zertifikat. Zwar ist der Vorgang sich ein g\u00fcltiges Zertifikat zu erstellen nicht trivial, aber im Internet gibt es gute Tutorials und auch kostenlose Zertifikate. Ich folgte dem sehr guten Tutorial bei <a title=\"How-To kostenlose SSL Zertifikate\" href=\"http:\/\/www.dermute.de\/468-howto-kostenlose-ssl-zertifikate-und-apache2\" target=\"_blank\">www.dermute.de<\/a> und erstellte mir dadurch ein von https:\/\/www.startssl.com\/ signiertes SSL-Zertifikat. Nat\u00fcrlich h\u00e4tte ich mir auch ein Zertifikat bei der CaCert erstellen k\u00f6nnen, wo ich seit einigen Jahren Assurer bin. Den Grund daf\u00fcr erkl\u00e4re ich sp\u00e4ter mal.<\/p>\n<p>So, mod_spdy ist installiert, ein SSL Zertifikat ebenso, alles zusammengef\u00fcgt und ordentlich umger\u00fchrt, dann sollte es doch jetzt eigentlich&#8230;nope, wieder nix. Das Errorlog pl\u00e4rrt:<\/p>\n<pre class=\"lang:default highlight:0 decode:1 inline:1 \" >access to \/var\/www\/vhosts\/kolja-engelmann.de\/httpdocs\/blog failed, reason: SSL connection required<\/pre>\n<p>Der Pudel liegt hier in der Option \u00a0SSLRequireSSL begraben und ist <a href=\"http:\/\/code.google.com\/p\/mod-spdy\/issues\/detail?id=31\">bekannt<\/a>.<\/p>\n<blockquote><p>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 &#8222;virtual&#8220; 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.<\/p><\/blockquote>\n<p>Nun, das bedeutet also, dass man momentan nur entweder SSL, oder SPDY nutzen kann, solange die Option <\/p>\n<pre class=\"lang:default highlight:0 decode:1 inline:1 \" >SSLRequireSSL<\/pre>\n<p> gesetzt ist. Also rasch die aktuelle vhost-config Datei unter <\/p>\n<pre class=\"lang:default highlight:0 decode:1 inline:1 \" >\/var\/www\/vhosts\/kolja-engelmann.de\/conf<\/pre>\n<p> bearbeitet, die Option\u00a0<\/p>\n<pre class=\"lang:default highlight:0 decode:1 inline:1 \" >SSLRequireSSL<\/pre>\n<p> gel\u00f6scht und den Webserver neu gestartet. Siehe da, im Chrome webbrowser kann man nach Eingabe der URL <a>chrome:\/\/net-internals\/#spdy<\/a> erkennen, dass SPDY nun funktioniert.<\/p>\n<p><a href=\"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2012\/05\/mod_spdy_kolja_engelmann_de.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-30\" title=\"mod_spdy auf kolja-engelmann.de\" alt=\"\" src=\"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2012\/05\/mod_spdy_kolja_engelmann_de-300x93.jpg\" width=\"300\" height=\"93\" srcset=\"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2012\/05\/mod_spdy_kolja_engelmann_de-300x93.jpg 300w, https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2012\/05\/mod_spdy_kolja_engelmann_de-500x156.jpg 500w, https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2012\/05\/mod_spdy_kolja_engelmann_de.jpg 601w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Bleibt eigentlich nur noch Plesk (womit dieser Webserver konfiguriert wird) beizubringen nicht stets das <\/p>\n<pre class=\"lang:default highlight:0 decode:1 inline:1 \" >SSLRequireSSL<\/pre>\n<p> Flag zu setzen. Ich bef\u00fcrchte, dass mit der n\u00e4chsten Konfigurations\u00e4nderung das n\u00e4mlich wieder auftauchen wird. Also editiere ich die Datei\u00a0<code>\/usr\/local\/psa\/admin\/conf\/templates\/default\/domain\/domainVirtualHost.php<\/code> in der das Grundger\u00fcst f\u00fcr die <code>vhost<\/code> Datei definiert wird und kommentiere die entsprechende Zeile aus.<\/p>\n<p>Geschafft!<\/p>","protected":false},"excerpt":{"rendered":"<p>Ich wollte testweise Google SPDY auf meinem Server installieren, um mich einmal selbst von der angeblich gigantischen Geschwindigkeitszunahmen zu \u00fcberzeugen. Die Installation von SPDY gestaltete sich als relativ einfach. Zun\u00e4chst muss man sich den n\u00f6tigen&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":30,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[161],"class_list":["post-26","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-allgemein","tag-apache"],"jetpack_featured_media_url":"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2012\/05\/mod_spdy_kolja_engelmann_de.jpg","jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/26","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/comments?post=26"}],"version-history":[{"count":0,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/26\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media\/30"}],"wp:attachment":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media?parent=26"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/categories?post=26"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/tags?post=26"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}