<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>question Re: SSL handshake failure for AWS-hosted parcel repositories in Support Questions</title>
    <link>https://community.cloudera.com/t5/Support-Questions/SSL-handshake-failure-for-AWS-hosted-parcel-repositories/m-p/58984#M53196</link>
    <description>&lt;P&gt;"A&lt;SPAN&gt;re SSL-enabled custom parcel repositories supported?"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;yes, as we can use this&amp;nbsp;&lt;A href="https://archive.cloudera.com/cdh5/parcels/" target="_blank"&gt;https://archive.cloudera.com/cdh5/parcels/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ths error is likely due to the AWS Cloudfront SNI [0], and the&amp;nbsp;current version of &lt;FONT face="courier new,courier"&gt;async-http-client-1.7.5.jar&lt;/FONT&gt;&amp;nbsp;that CM uses does not support SNI, see related [1a,b,c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Testing the URL with &lt;FONT face="courier new,courier"&gt;openssl&lt;/FONT&gt; excluding the&amp;nbsp;&lt;FONT face="courier new,courier"&gt;-servername&lt;/FONT&gt;&lt;FONT face="andale mono, times"&gt;&amp;nbsp;flag&lt;/FONT&gt;&lt;/P&gt;&lt;PRE&gt;# openssl s_client -connect repository.cask.co:443
CONNECTED(00000003)
140455651178400:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:744:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 247 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;with&lt;SPAN&gt;&amp;nbsp;&lt;FONT face="courier new,courier"&gt;-servername [repository|downloads].cask.co&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;# openssl s_client -connect repository.cask.co:443 -servername repository.cask.co &amp;lt;/dev/null | grep "Verify"
depth=4 C = US, O = "Starfield Technologies, Inc.", OU = Starfield Class 2 Certification Authority
verify return:1
depth=3 C = US, ST = Arizona, L = Scottsdale, O = "Starfield Technologies, Inc.", CN = Starfield Services Root Certificate Authority - G2
verify return:1
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1
verify return:1
depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon
verify return:1
depth=0 CN = repository.cask.co
verify return:1
DONE
    Verify return code: 0 (ok)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;setting&lt;SPAN&gt;-Djavax.net.debug=all&lt;/SPAN&gt; in /etc/default/cloudera-scm-server&lt;/P&gt;&lt;P&gt;[...]&lt;/P&gt;&lt;P&gt;export CMF_JAVA_OPTS="... -Djavax.net.debug=all"&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;[...]&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Notice handshake_failure&lt;BR /&gt;*** ClientHello, TLSv1&lt;BR /&gt;[...]&lt;BR /&gt;[Raw read]: length = 2
0000: 02 28                                              .(
New I/O  worker #6, READ: TLSv1 Alert, length = 2
New I/O  worker #6, RECV TLSv1 ALERT:  fatal, handshake_failure
New I/O  worker #6, fatal: engine already closed.  Rethrowing javax.net.ssl.SSLException: Received fatal alert: handshake_failure
New I/O  worker #6, fatal: engine already closed.  Rethrowing javax.net.ssl.SSLException: Received fatal alert: handshake_failure
New I/O  worker #6, called closeOutbound()
New I/O  worker #6, closeOutboundInternal()
New I/O  worker #6, SEND TLSv1 ALERT:  warning, description = close_notify
New I/O  worker #6, WRITE: TLSv1 Alert, length = 2
New I/O  worker #6, called closeInbound()
New I/O  worker #6, fatal: engine already closed.  Rethrowing javax.net.ssl.SSLException: Inbound closed before receiving peer's close_notify: possible truncation attack?
[Raw write]: length = 7
0000: 15 03 01 00 02 01 00                               .......
New I/O  worker #6, called closeOutbound()
New I/O  worker #6, closeOutboundInternal()&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We currently track this internally in&amp;nbsp;/OPSAPS-30976/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Michalis&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;[0]&amp;nbsp;&lt;A href="https://aws.amazon.com/about-aws/whats-new/2014/03/05/amazon-cloudront-announces-sni-custom-ssl/" target="_blank"&gt;https://aws.amazon.com/about-aws/whats-new/2014/03/05/amazon-cloudront-announces-sni-custom-ssl/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;[1a]&amp;nbsp;&lt;A href="https://groups.google.com/forum/#!topic/play-framework/T7ZhclgAAMU" target="_blank"&gt;https://groups.google.com/forum/#!topic/play-framework/T7ZhclgAAMU&lt;/A&gt;&lt;/P&gt;&lt;P&gt;[1b]&amp;nbsp;&lt;A href="https://github.com/loopj/android-async-http/issues/224" target="_blank"&gt;https://github.com/loopj/android-async-http/issues/224&lt;/A&gt;&lt;/P&gt;&lt;P&gt;[1c]&amp;nbsp;&lt;A href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57935" target="_blank"&gt;https://bz.apache.org/bugzilla/show_bug.cgi?id=57935&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 18 Aug 2017 00:50:11 GMT</pubDate>
    <dc:creator>michalis</dc:creator>
    <dc:date>2017-08-18T00:50:11Z</dc:date>
    <item>
      <title>SSL handshake failure for AWS-hosted parcel repositories</title>
      <link>https://community.cloudera.com/t5/Support-Questions/SSL-handshake-failure-for-AWS-hosted-parcel-repositories/m-p/58979#M53195</link>
      <description>&lt;P&gt;We have a parcel repository hosted in Amazon S3, and also have it configured to be accessible via https using AWS Certificate Manager. &amp;nbsp;The certificate is valid, and other tools (curl, Chrome) have no issues accessing the repository via SSL.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When adding the repository to Cloudera Manager with an https:// prefix, it fails with an SSL handshake failure (below). &amp;nbsp;Are SSL-enabled custom parcel repositories supported? &amp;nbsp;Observed on Cloudera Manager 5.10.2, JDK&amp;nbsp;&lt;SPAN&gt;1.7.0_75, CentOS 6.9.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;2017-08-17 19:56:33,582 ERROR ParcelUpdateService:com.cloudera.parcel.components.ParcelDownloaderImpl: Unable to retrieve remote parcel repository manifest
java.util.concurrent.ExecutionException: java.net.ConnectException: Received fatal alert: handshake_failure to https://repository.cask.co/parcels/cdap/4.2/manifest.json
        at com.ning.http.client.providers.netty.NettyResponseFuture.abort(NettyResponseFuture.java:297)
        at com.ning.http.client.providers.netty.NettyConnectListener.operationComplete(NettyConnectListener.java:104)
        at org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:399)
        at org.jboss.netty.channel.DefaultChannelFuture.notifyListeners(DefaultChannelFuture.java:385)
        at org.jboss.netty.channel.DefaultChannelFuture.setFailure(DefaultChannelFuture.java:352)
        at org.jboss.netty.handler.ssl.SslHandler.setHandshakeFailure(SslHandler.java:1147)
        at org.jboss.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1026)
        at org.jboss.netty.handler.ssl.SslHandler.decode(SslHandler.java:664)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:328)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:211)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:75)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:94)
        at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:372)
        at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:246)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:38)
        at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
        at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Received fatal alert: handshake_failure to https://repository.cask.co/parcels/cdap/4.2/manifest.json
        at com.ning.http.client.providers.netty.NettyConnectListener.operationComplete(NettyConnectListener.java:100)
        ... 22 more
Caused by: javax.net.ssl.SSLException: Received fatal alert: handshake_failure
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
        at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1639)
        at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1607)
        at sun.security.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1776)
        at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1068)
        at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:890)
        at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:764)
        at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
        at org.jboss.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:958)
        at org.jboss.netty.handler.ssl.SslHandler.decode(SslHandler.java:664)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:328)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:211)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:94)
        at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:372)
        at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:246)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:38)
        ... 3 more&lt;/PRE&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;-Derek&lt;/P&gt;</description>
      <pubDate>Thu, 17 Aug 2017 20:39:09 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/SSL-handshake-failure-for-AWS-hosted-parcel-repositories/m-p/58979#M53195</guid>
      <dc:creator>drock</dc:creator>
      <dc:date>2017-08-17T20:39:09Z</dc:date>
    </item>
    <item>
      <title>Re: SSL handshake failure for AWS-hosted parcel repositories</title>
      <link>https://community.cloudera.com/t5/Support-Questions/SSL-handshake-failure-for-AWS-hosted-parcel-repositories/m-p/58984#M53196</link>
      <description>&lt;P&gt;"A&lt;SPAN&gt;re SSL-enabled custom parcel repositories supported?"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;yes, as we can use this&amp;nbsp;&lt;A href="https://archive.cloudera.com/cdh5/parcels/" target="_blank"&gt;https://archive.cloudera.com/cdh5/parcels/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ths error is likely due to the AWS Cloudfront SNI [0], and the&amp;nbsp;current version of &lt;FONT face="courier new,courier"&gt;async-http-client-1.7.5.jar&lt;/FONT&gt;&amp;nbsp;that CM uses does not support SNI, see related [1a,b,c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Testing the URL with &lt;FONT face="courier new,courier"&gt;openssl&lt;/FONT&gt; excluding the&amp;nbsp;&lt;FONT face="courier new,courier"&gt;-servername&lt;/FONT&gt;&lt;FONT face="andale mono, times"&gt;&amp;nbsp;flag&lt;/FONT&gt;&lt;/P&gt;&lt;PRE&gt;# openssl s_client -connect repository.cask.co:443
CONNECTED(00000003)
140455651178400:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:744:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 247 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;with&lt;SPAN&gt;&amp;nbsp;&lt;FONT face="courier new,courier"&gt;-servername [repository|downloads].cask.co&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;# openssl s_client -connect repository.cask.co:443 -servername repository.cask.co &amp;lt;/dev/null | grep "Verify"
depth=4 C = US, O = "Starfield Technologies, Inc.", OU = Starfield Class 2 Certification Authority
verify return:1
depth=3 C = US, ST = Arizona, L = Scottsdale, O = "Starfield Technologies, Inc.", CN = Starfield Services Root Certificate Authority - G2
verify return:1
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1
verify return:1
depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon
verify return:1
depth=0 CN = repository.cask.co
verify return:1
DONE
    Verify return code: 0 (ok)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;setting&lt;SPAN&gt;-Djavax.net.debug=all&lt;/SPAN&gt; in /etc/default/cloudera-scm-server&lt;/P&gt;&lt;P&gt;[...]&lt;/P&gt;&lt;P&gt;export CMF_JAVA_OPTS="... -Djavax.net.debug=all"&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;[...]&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Notice handshake_failure&lt;BR /&gt;*** ClientHello, TLSv1&lt;BR /&gt;[...]&lt;BR /&gt;[Raw read]: length = 2
0000: 02 28                                              .(
New I/O  worker #6, READ: TLSv1 Alert, length = 2
New I/O  worker #6, RECV TLSv1 ALERT:  fatal, handshake_failure
New I/O  worker #6, fatal: engine already closed.  Rethrowing javax.net.ssl.SSLException: Received fatal alert: handshake_failure
New I/O  worker #6, fatal: engine already closed.  Rethrowing javax.net.ssl.SSLException: Received fatal alert: handshake_failure
New I/O  worker #6, called closeOutbound()
New I/O  worker #6, closeOutboundInternal()
New I/O  worker #6, SEND TLSv1 ALERT:  warning, description = close_notify
New I/O  worker #6, WRITE: TLSv1 Alert, length = 2
New I/O  worker #6, called closeInbound()
New I/O  worker #6, fatal: engine already closed.  Rethrowing javax.net.ssl.SSLException: Inbound closed before receiving peer's close_notify: possible truncation attack?
[Raw write]: length = 7
0000: 15 03 01 00 02 01 00                               .......
New I/O  worker #6, called closeOutbound()
New I/O  worker #6, closeOutboundInternal()&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We currently track this internally in&amp;nbsp;/OPSAPS-30976/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Michalis&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;[0]&amp;nbsp;&lt;A href="https://aws.amazon.com/about-aws/whats-new/2014/03/05/amazon-cloudront-announces-sni-custom-ssl/" target="_blank"&gt;https://aws.amazon.com/about-aws/whats-new/2014/03/05/amazon-cloudront-announces-sni-custom-ssl/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;[1a]&amp;nbsp;&lt;A href="https://groups.google.com/forum/#!topic/play-framework/T7ZhclgAAMU" target="_blank"&gt;https://groups.google.com/forum/#!topic/play-framework/T7ZhclgAAMU&lt;/A&gt;&lt;/P&gt;&lt;P&gt;[1b]&amp;nbsp;&lt;A href="https://github.com/loopj/android-async-http/issues/224" target="_blank"&gt;https://github.com/loopj/android-async-http/issues/224&lt;/A&gt;&lt;/P&gt;&lt;P&gt;[1c]&amp;nbsp;&lt;A href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57935" target="_blank"&gt;https://bz.apache.org/bugzilla/show_bug.cgi?id=57935&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 18 Aug 2017 00:50:11 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/SSL-handshake-failure-for-AWS-hosted-parcel-repositories/m-p/58984#M53196</guid>
      <dc:creator>michalis</dc:creator>
      <dc:date>2017-08-18T00:50:11Z</dc:date>
    </item>
    <item>
      <title>Re: SSL handshake failure for AWS-hosted parcel repositories</title>
      <link>https://community.cloudera.com/t5/Support-Questions/SSL-handshake-failure-for-AWS-hosted-parcel-repositories/m-p/58986#M53197</link>
      <description>&lt;P&gt;Thanks for the detailed response!&lt;/P&gt;</description>
      <pubDate>Fri, 18 Aug 2017 01:50:21 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/SSL-handshake-failure-for-AWS-hosted-parcel-repositories/m-p/58986#M53197</guid>
      <dc:creator>drock</dc:creator>
      <dc:date>2017-08-18T01:50:21Z</dc:date>
    </item>
  </channel>
</rss>

