gpt4 book ai didi

java - 通过 Java 中的多个条目在 keystore 中通过别名获取证书

转载 作者:行者123 更新时间:2023-11-30 10:54:39 26 4
gpt4 key购买 nike

好的!我们正在尝试实现客户端服务器应用程序(聊天室)。服务器当然是多线程的。我们希望通信安全,因此我们使用了 ssl 套接字和证书。我读过您可以在一个 keystore 中存储多个证书和 key 。当客户进入聊天时,他需要填写自己的用户名。

  1. 我们是否必须将用户名连接到证书/ key 的别名?

  2. 如果是,我们如何使用别名的 keystore 中的特定证书/ key ?或者还有其他方法吗?我的意思是我们如何根据名称“挑选”特定证书

  3. 有没有办法让客户在进入时创建他们的证书? (我们希望证书由我们已经实现的 CA 签名)

谢谢!

最佳答案

基本上您想要的是相互或双向 SSL。阅读这些以获取更多信息 - herehere

简而言之 - SSL 通信工作(在身份验证证书的上下文中)是服务器将证书发送给客户端,如果该证书存在于客户端的证书库或您的 Java keystore 中情况下,然后它对服务器进行身份验证。

通常服务器从不要求客户端发送证书,但在您的情况下您需要它,所以它使它成为相互或双向 SSL。因此,在握手过程中,服务器将要求客户端也发送其证书,如果该证书存在,它还将检查其 keystore ,如果存在,那么它会很高兴,否则它将结束 SSL 握手。

您需要:

  • 您的每个客户端和您的服务器都应该有一个有效的证书。
  • 您的服务器应该在其“信任 keystore ”中包含这些客户端证书,以便它可以对客户端进行身份验证。
  • 您的每个客户端都应该在其“信任 keystore ”中拥有服务器的证书,以便它可以验证服务器。
  • 您的服务器应配置为支持双向 SSL。阅读here for Weblogic .


具体回答你的问题:

Do we have to connect the username to the alias of the certificate/key?

不,您唯一需要的是客户端证书应该出现在服务器的“信任 keystore ”中。但是由于您的客户端应用程序和服务器位于同一台机器上,所以我建议安装不同的 JVM 来运行客户端和服务器,以便您支持不同的证书。

If yes, how can we use the specific certificate/key from the keystore from the alias? Or is there another way? I mean how can we "pick" the specific certificate depending on the name

不适用。

Is there a way for the clients to create their certificates at the time of they enter? (We want the certificates to be signed by a CA we have already implemented)

证书要事先准备好,证书的创建和签名是一个复杂的过程,需要生成CSR等。

请务必阅读我的this answer有关执行所有这些操作时可能需要的其他详细信息。

关于java - 通过 Java 中的多个条目在 keystore 中通过别名获取证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33573151/

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