Skip to content

H2's anonymous TLS does not work on Java 11 #1303

@katzyn

Description

@katzyn

There is a failure in TestAll on Oracle JDK 11 EA and OpenJDK 11 EA.

10:01:33 01:10:15.060 org.h2.test.unit.TestNetUtils TLS session should be valid when anonymous TLS is enabled
10:01:33 01:10:15.062 org.h2.test.unit.TestNetUtils Expected: null got: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
Exception in thread "main" java.lang.AssertionError: Expected: null got: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
	at org.h2.test.TestBase.fail(TestBase.java:325)
	at org.h2.test.TestBase.assertNull(TestBase.java:824)
	at org.h2.test.unit.TestNetUtils.testAnonymousTlsSession(TestNetUtils.java:87)
	at org.h2.test.unit.TestNetUtils.test(TestNetUtils.java:48)
	at org.h2.test.unit.TestNetUtils.main(TestNetUtils.java:43)
javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
	at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:125)
	at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:116)
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:312)
	at java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:266)
	at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:181)
	at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164)
	at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:877)
	at java.base/sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:810)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:383)
	at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:477)
	at java.base/sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:709)
	at java.base/sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:690)
	at org.h2.test.unit.TestNetUtils$1.call(TestNetUtils.java:146)
	at org.h2.util.Task.run(Task.java:44)
	at java.base/java.lang.Thread.run(Thread.java:834)

H2 performs some related tricks in CipherFactory. May be they do not work any more, but I'm not familiar with that area of H2.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions