// seems to assume same password is used for keystore as well as certificate. static SSLServerSocketFactory makeSSLServerSocketFactory(File keystoreFile, S passphrase) ctex { KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType()); temp InputStream keystoreStream = new FileInputStream(keystoreFile); keystore.load(keystoreStream, passphrase.toCharArray()); TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); trustManagerFactory.init(keystore); KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); keyManagerFactory.init(keystore, passphrase.toCharArray()); SSLContext ctx = SSLContext.getInstance("TLS"); ctx.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), null); ret ctx.getServerSocketFactory(); }