对于安全的服务器套接字以发送服务器证书,我所做的就是使用已使用我的密钥库初始化SSLContext
的 a进行初始化。
但是我怎么能在客户端做到这一点呢?
即对于我做的客户:KeyManagerFactory.getKeyManagers()
System.setProperty("javax.net.ssl.keyStore", "clientKeystore.keystore");
System.setProperty("javax.net.ssl.keyStorePassword", "secret");
System.setProperty("javax.net.ssl.trustStore", "clientKeystore.keystore");
System.setProperty("javax.net.ssl.trustStorePassword", "secret");
SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket socket = (SSLSocket) factory.createSocket("localhost", 7890);
我使用与信任库相同的密钥库。我认为只是为了寻找 JSSE 就可以了。
问题是我进入了服务器部分(我setNeedClientAuth
在 serversocket 中设置为 true)。
Exception in thread "main" javax.net.ssl.SSLHandshakeException: null cert chain
那么我应该如何配置客户端以发送证书?系统属性不是正确的方法吗?
因为我看不到 SSLContext 如何在客户端使用。
谢谢!