gpt4 book ai didi

Java相互认证-客户端服务器

转载 作者:太空宇宙 更新时间:2023-11-03 13:44:22 27 4
gpt4 key购买 nike

我正在编写一个简单的 Java 客户端/服务器程序,其中只需与服务器建立连接并向其发送一个句子,然后服务器发送相应的响应。这实际上是一个直接的例子。

在上述场景中,我正在寻找基于 SSL 的相互身份验证。我需要在 java 中实现它。

如果您有任何示例或如何在 Java 中实现相同的示例,请建议我。

最佳答案

当您说“客户端/服务器”时,是指使用 Socket 吗?但 SSL 通常用于 HTTP 连接。我还没有看到它用于套接字连接。这是 HTTP 的示例: 您必须将 PKCS12 证书加载到 keystore 中,并将该存储提供给 SSLContext。

private SSLSocketFactory getFactory( File pKeyFile, String pKeyPassword ) throws ... {
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509);
KeyStore keyStore = KeyStore.getInstance("PKCS12");

InputStream keyInput = new FileInputStream(pKeyFile);
keyStore.load(keyInput, pKeyPassword.toCharArray());
keyInput.close();

keyManagerFactory.init(keyStore, pKeyPassword.toCharArray());

SSLContext context = SSLContext.getInstance("TLS");
context.init(keyManagerFactory.getKeyManagers(), null, new SecureRandom());

return context.getSocketFactory();
}

URL url = new URL("someurl");
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
con.setSSLSocketFactory(getFactory(new File("file.p12"), "secret"));

关于Java相互认证-客户端服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23429775/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com