public static SSLServerSocketFactory makeSSLSocketFactory ( String keyAndTrustStoreClasspathPath , char [ ] passphrase ) throws IOException { try { KeyStore keystore = KeyStore . getInstance ( KeyStore . getDefaultType ( ) ) ; InputStream keystoreStream = NanoHTTPD . class . getResourceAsStream ( keyAndTrustStoreClasspathPath ) ; if ( keystoreStream == null ) { throw new IOException ( "Unable to load keystore from classpath: " + keyAndTrustStoreClasspathPath ) ; } keystore . load ( keystoreStream , passphrase ) ; KeyManagerFactory keyManagerFactory = KeyManagerFactory . getInstance ( KeyManagerFactory . getDefaultAlgorithm ( ) ) ; keyManagerFactory . init ( keystore , passphrase ) ; return makeSSLSocketFactory ( keystore , keyManagerFactory ) ; } catch ( Exception e ) { throw new IOException ( e . getMessage ( ) ) ; } }
Creates an SSLSocketFactory for HTTPS . Pass a KeyStore resource with your certificate and passphrase