Geoff Macartney created BROOKLYN-456:
----------------------------------------
Summary: "SSLException: internal_error" upon trying to connect to
site requiring SNI
Key: BROOKLYN-456
URL: https://issues.apache.org/jira/browse/BROOKLYN-456
Project: Brooklyn
Issue Type: Bug
Reporter: Geoff Macartney
Priority: Minor
On 17th March brooklyn-server builds began failing, such as
https://builds.apache.org/view/Brooklyn/job/brooklyn-server-master/492/.
The errors were failures in tests
{quote}
org.apache.brooklyn.camp.brooklyn.HttpCommandEffectorYamlRebindTest.testRebindWhenHealthy
org.apache.brooklyn.camp.brooklyn.HttpCommandEffectorYamlTest.testHttpCommandEffectorWithParameters
org.apache.brooklyn.camp.brooklyn.CompositeEffectorYamlRebindTest.testRebindWhenHealthy
org.apache.brooklyn.camp.brooklyn.CompositeEffectorYamlTest.testCompositeEffector
{quote}
all of which issued requests to "https://httpbin.org" for test purposes.
There seems to have been a change in configuration on httpbin.org on the 16h of
March, see
[here|https://lists.apache.org/thread.html/2d7bfb556b5459590d266d079043861bc34c0b921a2b5346ae9fd8ae@%3Cdev.brooklyn.apache.org%3E].
However the certificate changes appear not to be the problem, as far as I can
tell, as the certificate chain from the site has root "Let's Encrypt Authority
X3" (SHA1
Fingerprint=E6:A3:B4:5B:06:2D:50:9B:33:82:28:2D:19:6E:FE:97:D5:95:6C:CB), which
is signed by CA "DST Root CA X3" (Certificate fingerprint
DA:C9:02:4F:54:D8:F6:DF:94:93:5F:B1:73:26:38:CA:6A:D7:7C:13), which is in the
cacerts file of Java 8 by default.
I believe the problem lies on the Java SSL client side, specifically that the
client is not including the SNI (Server Naming Indicator) extension in the SSL
handshake. httpbin requires this, compare
{code}
openssl s_client -showcerts -connect httpbin.org:443 </dev/null
CONNECTED(00000003)
7944:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake
failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-59.60.1/src/ssl/s23_lib.c:185:
{code}
with the output from
{code}
openssl s_client -servername httpbin.org -showcerts -connect httpbin.org:443
</dev/null
{code}
The result is that the connection attempt fails with
{code}
SSLException: Received fatal alert: internal_error
{code}
Searching around the web there seem to be a number of other people who have
encountered this problem, e.g.
https://forums.aws.amazon.com/message.jspa?messageID=669911. The issue seems
to be fixed only in Java 9, but there may be workarounds on 7 and 8. I haven't
tried these out yet.
I will look at adding a test in Brooklyn to record this.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)