如何使客户端信任自签名证书Java SSL

时间:2017-06-02 08:13:24

标签: java ssl networking cryptography keystore

我使用java的keytool

创建了一个自签名证书
  

keytool -genkeypair -alias my_home -keystore herong.jks

在客户端我有。

System.setProperty("javax.net.ssl.trustStore", "herong.jks");
        System.setProperty("javax.net.ssl.trustStorePassword", "HerongJKS");

我在服务器上

System.setProperty("javax.net.ssl.keyStore", "herong.jks");
        System.setProperty("javax.net.ssl.keyStorePassword", "HerongJKS");

String ksName = "herong.jks";
        char ksPass[] = "HerongJKS".toCharArray();
        char ctPass[] = "My1stKey".toCharArray();
        try {
            KeyStore ks = KeyStore.getInstance("JKS");
            ks.load(server.class.getResourceAsStream(ksName), ksPass);
            KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
            kmf.init(ks, ctPass);
            SSLContext sc = SSLContext.getInstance("TLS");
            sc.init(kmf.getKeyManagers(), null, null);
            //listen for connections
            }

我在服务器和客户端软件包中都有jks文件,但是当尝试通过两台计算机连接到服务器时,客户端无法通过握手。

0 个答案:

没有答案