我正试图提供一个简单的"你好,世界!"使用Undertow嵌入式服务器通过HTTPS通过自签名证书进行响应。然而,我在客户端(Chrome)上得到ERR_SSL_VERSION_OR_CIPHER_MISMATCH
,在服务器日志中得到SSLHandshakeException: no cipher suites in common
。
似乎除了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服务器进行类似测试的例子(以证明证书是好的)。
对代码的更改对我有效:
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(getKeyManagers(), null, null);
Undertow.builder().addHttpsListener(10443, "0.0.0.0", sslContext)...