diff options
Diffstat (limited to 'src/main/java/de/spline/kvm/utils/SSLUtils.java')
-rw-r--r-- | src/main/java/de/spline/kvm/utils/SSLUtils.java | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/main/java/de/spline/kvm/utils/SSLUtils.java b/src/main/java/de/spline/kvm/utils/SSLUtils.java new file mode 100644 index 0000000..75bb1dd --- /dev/null +++ b/src/main/java/de/spline/kvm/utils/SSLUtils.java @@ -0,0 +1,47 @@ +package de.spline.kvm.utils; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import javax.net.ssl.TrustManagerFactory; +import java.io.IOException; +import java.io.InputStream; +import java.security.GeneralSecurityException; +import java.security.KeyStore; + +public class SSLUtils +{ + public static SSLSocketFactory getSocketFactory() + { + SSLContext ctx = null; + + try { + ctx = SSLContext.getInstance("TLS"); + ctx.init(null, getTrustManagers(), null); + } + catch (GeneralSecurityException | IOException e) { + e.printStackTrace(); + System.exit(1); + } + + return ctx.getSocketFactory(); + } + + private static TrustManager[] getTrustManagers() + throws GeneralSecurityException, IOException + { + TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance( + TrustManagerFactory.getDefaultAlgorithm()); + trustManagerFactory.init(loadKeyStore()); + return trustManagerFactory.getTrustManagers(); + } + + private static KeyStore loadKeyStore() + throws GeneralSecurityException, IOException + { + KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); + InputStream in = ClassLoader.getSystemResourceAsStream("dfn-g2.jks"); + keyStore.load(in, "changeit".toCharArray()); + return keyStore; + } +} |