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(