This ended up to be an issue with Java 8, related to this issue:
I am following the Quickstart instructions to fire up Snowplow. When running the Ansible oss-playbook java7.yml, I receive the following error:
==> default: Connecting to download.oracle.com (download.oracle.com)|65.202.184.99|:80... connected.
==> default: HTTP request sent, awaiting response... 404 Not Found
==> default: 2017-05-31 21:18:21 ERROR 404: Not Found.
==> default:
==> default: download failed
==> default: Oracle JDK 7 is NOT installed.
Doing some reading on the topic, it seems a…
I’d switched to Java 8 because Java 7 is no longer easily available, and apparently there’s a bug in Java 8 with SNI where it doesn’t work unless the HTTPS object is initialized correctly:
opened 11:18AM - 09 Feb 15 UTC
closed 05:06PM - 24 Mar 16 UTC
bug
t:stream
t:io
t:http
t:io:tls
It seems this is available starting from Java 7. Without SNI on the client side … it isn't possible to connect to HTTPS servers with "virtual hosts" (i.e. servers listening on one IP address but responding differently depending on the domain name).
See http://en.wikipedia.org/wiki/Server_Name_Indication and [RFC6066](http://tools.ietf.org/html/rfc6066). It seems it should work out-of-the-box [starting with Java 7](http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html) when the SSLEngine is created with the correct hostname.
See also spray/spray#993.
/cc @sirthias
I’ve changed to using openjdk-7 instead of the no longer available oracle 7, and so far everything seems to be working OK.