Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中使用多个条目在密钥库中通过别名获取证书_Java_Ssl_Client_Alias_Keystore - Fatal编程技术网

在Java中使用多个条目在密钥库中通过别名获取证书

在Java中使用多个条目在密钥库中通过别名获取证书,java,ssl,client,alias,keystore,Java,Ssl,Client,Alias,Keystore,好的!我们正在尝试实现客户端-服务器应用程序(聊天室)。当然,服务器是多线程的。我们希望通信是安全的,所以我们使用ssl套接字和证书。我已经读到,您可以在一个密钥库中存储多个证书和密钥。当客户进入聊天室时,他需要填写用户名 我们是否必须将用户名连接到证书/密钥的别名 如果是,我们如何使用别名密钥库中的特定证书/密钥?还是有别的办法?我的意思是,我们如何根据名称“选择”特定的证书 客户端是否有办法在输入时创建证书?(我们希望证书由我们已经实现的CA签名) 谢谢大家! 基本上您想要的是双向或双向SS

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

  • 我们是否必须将用户名连接到证书/密钥的别名

  • 如果是,我们如何使用别名密钥库中的特定证书/密钥?还是有别的办法?我的意思是,我们如何根据名称“选择”特定的证书

  • 客户端是否有办法在输入时创建证书?(我们希望证书由我们已经实现的CA签名)


  • 谢谢大家!

    基本上您想要的是双向或双向SSL。阅读这些以了解更多信息-以及

    简而言之,SSL通信工作(在认证证书的上下文中)是服务器将证书发送到客户端,如果该证书存在于客户端的证书存储区或Java的密钥库中,则它将认证服务器

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

    您需要什么:

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

    具体回答您的问题:

    我们必须将用户名连接到服务器的别名吗 证书/密钥

    不,您只希望客户端证书出现在服务器的“信任密钥库”中。但由于您的客户端应用程序和服务器在同一台机器上,所以我建议使用不同JVM安装的来运行客户端和服务器,以便支持不同的证书

    如果是,我们如何使用密钥库中的特定证书/密钥 来自别名?还是有别的办法?我的意思是,我们怎么才能“选择”这个 取决于名称的特定证书

    不适用

    是否有一种方法可以让客户端同时创建证书 他们进入的时间?(我们希望证书由CA签名,我们 (已实施)

    证书应该事先准备好,证书创建和签名是一个复杂的过程,您必须生成CSR等


    请务必阅读my,了解您在执行所有这些操作时可能需要的其他详细信息

    为什么!为什么希望客户端将证书传递给服务器。因为您正在谈论聊天应用程序,所以如果我理解正确,那么您的客户端将是浏览器应用程序,以及为什么您认为每个客户端(依次是浏览器)将向您发送认证证书。如果这不是你想要的,那么你的问题就不清楚了。对不起,我犯了错误。但这是一个java项目,我在localhost上运行客户机和服务器。为什么我需要客户端身份验证?好吧,我的任务是谁想要这个。这不是你问的吗?谢谢Ele的澄清。我现在明白你的问题了,真正的怀疑。请阅读我的答案。非常感谢