如果使用TLS / SSL,无法连接到Jetty WebSocket服务器,服务器不响应,为什么?

我正在尝试为使用Jetty嵌入式实例的WebSocket服务器配置安全连接。 这是我如何配置的东西:

import org.eclipse.jetty.http.HttpVersion import org.eclipse.jetty.server.* import org.eclipse.jetty.servlet.ServletContextHandler import org.eclipse.jetty.util.ssl.SslContextFactory import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer import org.slf4j.LoggerFactory import java.io.* import java.net.InetAddress import java.security.KeyStore import javax.net.ssl.KeyManagerFactory import javax.net.ssl.SSLContext import javax.net.ssl.TrustManagerFactory import javax.websocket.* import javax.websocket.server.ServerEndpoint (...) @Throws(Exception::class) private fun getServerConnector(): ServerConnector { val connector: ServerConnector if (USE_SSL) { LOG.info("** Using SSL for all websocket connections **") val contextFactory = SslContextFactory() contextFactory.sslContext = this.buildSSLContext() val sslConnectionFactory = SslConnectionFactory(contextFactory, HttpVersion.HTTP_1_1.toString()) val config = HttpConfiguration() config.secureScheme = "https" config.securePort = settings.getPort() config.outputBufferSize = Int.MAX_VALUE config.requestHeaderSize = 8192 config.responseHeaderSize = 8192 val sslConfiguration = HttpConfiguration(config) sslConfiguration.addCustomizer(SecureRequestCustomizer()) val httpConnectionFactory = HttpConnectionFactory(sslConfiguration) connector = ServerConnector(this.server, sslConnectionFactory, httpConnectionFactory) } else { val config = HttpConfiguration() config.securePort = settings.getPort() config.outputBufferSize = Int.MAX_VALUE config.requestHeaderSize = 8192 config.responseHeaderSize = 8192 val httpConnectionFactory = HttpConnectionFactory() connector = ServerConnector(this.server, httpConnectionFactory) } connector.port = settings.getPort() return connector } @Throws(Exception::class) private fun buildSSLContext(): SSLContext { val ks = KeyStore.getInstance("JKS") val kf = File(KEYSTORE_FILE) ks.load(FileInputStream(kf), KEYSTORE_PASSWORD.toCharArray()) val kmf = KeyManagerFactory.getInstance("SunX509") kmf.init(ks, KEY_PASSWORD.toCharArray()) val tmf = TrustManagerFactory.getInstance("SunX509") tmf.init(ks) val sslContext = SSLContext.getInstance("TLS") sslContext.init(kmf.keyManagers, tmf.trustManagers, null) return sslContext } 

如果我尝试连接到这个服务器,我立即断开连接,但是没有错误消息显示在客户端或服务器中。

我错过了什么?

在这里输入图像说明

PS。 我使用的语言是Kotlin,但是它是一种JVM语言,所以如果你知道Java你知道这一点, 那么库就是一样的