{"id":4231,"date":"2012-05-08T23:55:35","date_gmt":"2012-05-09T03:55:35","guid":{"rendered":"https:\/\/nuxx.net\/blog\/?p=4231"},"modified":"2012-05-09T08:20:24","modified_gmt":"2012-05-09T12:20:24","slug":"now-with-ipv6-and-ssl-but-no-spdy","status":"publish","type":"post","link":"https:\/\/nuxx.net\/blog\/2012\/05\/08\/now-with-ipv6-and-ssl-but-no-spdy\/","title":{"rendered":"Now With IPv6 and SSL (but no SPDY)"},"content":{"rendered":"<p><center><\/p>\n<table cellpadding=1>\n<tr>\n<td bgcolor=\"black\"><a href=\"https:\/\/nuxx.net\/gallery\/v\/computers\/screenshots\/qualys_ssl_labs_scan_nuxx_net.png.html?g2_imageViewsIndex=2\"><img decoding=\"async\" src=\"https:\/\/nuxx.net\/gallery\/d\/101240-2\/qualys_ssl_labs_scan_nuxx_net.png\" height=640 width=333 border=0 title=\"Qualys SSL Labs scan of nuxx.net after switching it over to HTTPS only.\"><\/a><\/td>\n<\/tr>\n<\/table>\n<p><\/center><\/p>\n<p>Since moving to a new server running <a href=\"http:\/\/httpd.apache.org\/\">Apache<\/a> for hosting websites I&#8217;ve been able to make quite a few changes that just weren&#8217;t quite possible with <a href=\"http:\/\/www.lighttpd.net\/\">lighttpd<\/a>. One major change is the use of <a href=\"https:\/\/en.wikipedia.org\/wiki\/IPv6\">IPv6<\/a>. Ever since the move I&#8217;ve set up all hosted sites with AAAA records and made them available via IPv6, and it&#8217;s been working great. While I don&#8217;t see much traffic  on this yet, I&#8217;m happy to know that the sites are all able to be reached this way. For reference:<\/p>\n<blockquote><p><tt>;; ANSWER SECTION:<\/tt><br \/>\n<tt>nuxx.net.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AAAA&nbsp;&nbsp;&nbsp;&nbsp;2607:f4b8:5:2:e611:5bff:feac:3a60<\/tt><\/p><\/blockquote>\n<p>I&#8217;ve also been wanting to move my personal site, <a href=\"https:\/\/nuxx.net\">nuxx.net<\/a>, to be <a href=\"https:\/\/en.wikipedia.org\/wiki\/HTTP_Secure\">HTTPS<\/a>-only. While not particularly important for most public content, this does protect session cookies for various admin functions that I may host under this domain, along with keeping any private content from prying eyes. Thanks to an <a href=\"https:\/\/en.wikipedia.org\/wiki\/Transport_Layer_Security\">SSL<\/a> certificate from the new-to-me <a href=\"https:\/\/en.wikipedia.org\/wiki\/Domain_name_registrar\">registrar<\/a> <a href=\"http:\/\/gandi.net\">gandi.net<\/a> it was pretty easy to get this set up. I was then able to take the old non-HTTPS vhost and permanently redirect it over to the secure one, and all content simply moved over to the secure side:<\/p>\n<blockquote><p><tt>&lt;VirtualHost *:80&gt;<\/tt><br \/>\n<tt>&nbsp;&nbsp;&nbsp;&nbsp;ServerName nuxx.net<\/tt><br \/>\n<tt>&nbsp;&nbsp;&nbsp;&nbsp;ServerAlias www.nuxx.net<\/tt><br \/>\n<tt>&nbsp;&nbsp;&nbsp;&nbsp;ServerAdmin c0nsumer@nuxx.net<\/tt><br \/>\n<tt>&nbsp;&nbsp;&nbsp;&nbsp;Redirect permanent \/ https:\/\/nuxx.net\/<\/tt><br \/>\n<tt>&lt;\/VirtualHost&gt;<\/tt><\/p><\/blockquote>\n<p>The browser test screenshot seen above from <a href=\"https:\/\/www.ssllabs.com\/ssltest\/index.html\">Qualys SSL Labs SSL Server Test<\/a> (live results <a href=\"https:\/\/www.ssllabs.com\/ssltest\/analyze.html?d=nuxx.net\">here<\/a>) shows that HTTPS is pretty well set up on nuxx.net. I&#8217;m sure it could be better, but for now I think it&#8217;s pretty good.<\/p>\n<p>Thanks to the magic of this bit of SQL I was able to update all <tt>http:\/\/nuxx.net<\/tt> links in <a href=\"https:\/\/nuxx.net\/blog\">nuxx.net blog<\/a> posts to  <tt>https:\/\/nuxx.net<\/tt>, allowing most pages to validate as fully secure. I&#8217;ll have to do something similar on the other apps to bring them up to snuff:<\/p>\n<blockquote><p><tt>UPDATE wp_posts SET post_content = REPLACE(post_content, 'http:\/\/nuxx.net', 'https:\/\/nuxx.net');<\/tt><\/p><\/blockquote>\n<p>Amusingly, the use of HTTPS seems to dramatically cut down on automated SPAM. Perhaps some of the link spamming tools don&#8217;t want to deal with the overhead (or cert validation?) of HTTPS? I&#8217;d figure they could just ignore them, though&#8230;<\/p>\n<p>Anyway, with all of this in place, I got to thinking about <a href=\"https:\/\/en.wikipedia.org\/wiki\/SPDY\">SPDY<\/a>, Google&#8217;s shiny new protocol. An Apache module for implementing it, <a href=\"https:\/\/code.google.com\/p\/mod-spdy\/\">mod-spdy<\/a> has been released and there is a <a href=\"http:\/\/www.freebsd.org\/cgi\/cvsweb.cgi\/ports\/www\/mod_spdy\/\">FreeBSD Port for it<\/a>, so I decided to give it a go. While the installation worked and Chrome showed it working (as seen via <a href=\"chrome:\/\/net-internals\/#spdy\">chrome:\/\/net-internals\/#spdy<\/a>). Unfortunately, I ran into a couple bugs. Most notable was that a number of httpd processes failed, and I ran into documented issues <a href=\"https:\/\/code.google.com\/p\/mod-spdy\/issues\/detail?id=36\">#36<\/a> and <a href=\"https:\/\/code.google.com\/p\/mod-spdy\/issues\/detail?id=36\">#39<\/a> which left me with an odd taste for this module. I&#8217;ve since disabled it, but once a new version is released I&#8217;ll probably try it again. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Since moving to a new server running Apache for hosting websites I&#8217;ve been able to make quite a few changes that just weren&#8217;t quite possible&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/nuxx.net\/blog\/2012\/05\/08\/now-with-ipv6-and-ssl-but-no-spdy\/\">Continue reading<span class=\"screen-reader-text\">Now With IPv6 and SSL (but no SPDY)<\/span><\/a><\/div>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-4231","post","type-post","status-publish","format-standard","hentry","category-computers","entry"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/posts\/4231","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/comments?post=4231"}],"version-history":[{"count":13,"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/posts\/4231\/revisions"}],"predecessor-version":[{"id":4244,"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/posts\/4231\/revisions\/4244"}],"wp:attachment":[{"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/media?parent=4231"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/categories?post=4231"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/tags?post=4231"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}