https://hacknote.jp/archives/8039/
では、JVMのオプションに以下を指定することで、ServerNameの設定が変更されてないなどSSL証明書の設定がよろしくないサイトもよしなに通してくれるようになりました。
-Djsse.enableSNIExtension=false
参考
http://ttshiko.hatenablog.jp/entry/20121103/1351927402
http://www.todesking.com/blog/2017-02-11-openssl-alert-handshake-failure/
しかし逆にSSL証明書の設定が厳し目のサイトなどでは弾かれてしまうことがあります。
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
試しに同様の接続設定をcurlでやってみると以下のようになります。
curl -I https://XXXX/ -k curl: (35) SSL peer handshake failed, the server most likely requires a client certificate to connect
Route53 × CloudFront × ACM × S3 みたいな構成のケースですね。
正しい設定をしているケースの方を通して、だめだった時には例外処理をする、という流れがよさそうなので、JVMのオプションの設定からは外して、SSLProtocolExceptionだった時にはHostnameVerifierをtrueにする対応が必要なようです。
参考
http://stackoverflow.com/questions/12361090/server-name-indication-sni-on-java