2014-10-27 123 views
1

我试图服务一个简单的'Hello world!'使用Undertow嵌入式服务器通过使用自签名证书的HTTPS进行响应。不过,我在服务器日志中的客户端(Chrome)和SSLHandshakeException: no cipher suites in common上获得ERR_SSL_VERSION_OR_CIPHER_MISMATCHUndertow HTTPS监听器

看来,除了KeyManager[]数组我还需要提供TLS协议来使用,但我找不到应该放在哪里。完整的示例在https://github.com/isopov/undertow-https-test/blob/master/src/main/java/com/sopovs/moradanen/UndertowHttpsTest.java 可用,而在https://github.com/isopov/undertow-https-test/blob/master/src/main/java/com/sopovs/moradanen/JettyHttpsTest.java有一个使用Jetty服务器进行类似测试的例子(证明证书是好的)。

回答

1

这种变化对代码为我工作:

SSLContext sslContext = SSLContext.getInstance("TLS"); 
    sslContext.init(getKeyManagers(), null, null); 

    Undertow.builder().addHttpsListener(10443, "0.0.0.0", sslContext)...