diff --git a/kmqtt-broker/src/jvmMain/kotlin/socket/tls/TLSServerSocket.kt b/kmqtt-broker/src/jvmMain/kotlin/socket/tls/TLSServerSocket.kt index b527681e4dc293c5f8077d252b0f70b85feab847..7d252a76ab7690304bf114f5496e1f4b8b7da763 100644 --- a/kmqtt-broker/src/jvmMain/kotlin/socket/tls/TLSServerSocket.kt +++ b/kmqtt-broker/src/jvmMain/kotlin/socket/tls/TLSServerSocket.kt @@ -27,17 +27,22 @@ internal actual class TLSServerSocket actual constructor( private val sslContext = SSLContext.getInstance(broker.tlsSettings!!.version) init { - val keyStore = KeyStore.getInstance("PKCS12") - File(broker.tlsSettings!!.keyStoreFilePath).inputStream().use { - keyStore.load(it, broker.tlsSettings.keyStorePassword?.toCharArray()) - } - val keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()) - keyManagerFactory.init(keyStore, broker.tlsSettings.keyStorePassword?.toCharArray()) + try { + val keyStore = KeyStore.getInstance("PKCS12") + File(broker.tlsSettings!!.keyStoreFilePath).inputStream().use { + keyStore.load(it, broker.tlsSettings.keyStorePassword?.toCharArray()) + } + val keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()) + keyManagerFactory.init(keyStore, broker.tlsSettings.keyStorePassword?.toCharArray()) - sslContext.init(keyManagerFactory.keyManagers, null, null) + sslContext.init(keyManagerFactory.keyManagers, null, null) - val initSession = sslContext.createSSLEngine().session - initSession.invalidate() + val initSession = sslContext.createSSLEngine().session + initSession.invalidate() + } catch (e: Exception) { + close() + throw e + } } private fun buildKeyManagers(