sitespeedio/sitespeed.io — pull request #379 by tollmanz (2014-02-11 13:52:25+00:00)
Title: Connect via any SSL protocol

When connecting to a site that does not support SSLv3, the following error is triggered:

"Could not analyze $url unrecoverable error when parsing the page..."

PhantomJS defaults to using [SSLv3](http://phantomjs.org/api/command-line.html) when making secure connections with a site. If the site does not support SSLv3, the result of calling `require('webpage').open` in the YSlow script is a status of ("fail")[https://github.com/marcelduran/yslow/blob/ef14079f850180f65f4351bba1aa73d981cc1e0b/src/phantomjs/]. PhantomJS allows you to specify the protocol to use when opening a page; however, the sitespeed.io script does not allow this parameter to be specified, which results in the default value of SSLv3 always being used. This "fail" status causes the "unrecoverable" error in the sitespeed.io script.

SSLv3 is an outdated protocol with known security (vulnerabilities)[http://www.acunetix.com/vulnerabilities/tls1sslv3-renegotiation-v/]. It would be nice to use sitespeed.io with sites that do not support the protocol.

To fix this issue, the `--ssl-protocol=any` argument can be sent to the PhantomJS call. This allows the connection to be made via SSLv3, SSLv2, or TLSv1. I think that specifying this argument as "any" allows for the best user experience as it should just work when testing against SSL. This commit adds this parameter.

I will email @soulgalore with a URL for testing as I do not want it public.