好的!我们正在尝试实现客户端服务器应用程序(聊天室)。当然,服务器是多线程的。我们希望通信是安全的,因此我们使用了ssl套接字和证书。我读过您可以在一个密钥库中存储多个证书和密钥。客户进入聊天室时,他需要填写用户名。
我们是否必须将用户名连接到证书/密钥的别名?
如果是,我们如何使用别名中密钥库中的特定证书/密钥?还是有另一种方法?我的意思是我们如何才能根据名称“挑选”特定的证书
客户进入时有没有办法创建他们的证书?(我们希望证书由已经实施的CA签名)
谢谢!
基本上,您想要的是Mutual或2路SSL。阅读这些以获取更多信息-在这里和这里
简而言之-SSL通信有效(在用于身份验证的证书的上下文中)是服务器将证书发送给客户端,并且如果您的情况下客户端的证书存储区或Java的密钥存储区中存在该证书,则它将对服务器进行身份验证。
通常,服务器从不要求客户端发送证书,但是在您的情况下,您希望使用它,因此将其设置为双向或双向SSL。因此,在握手过程中,服务器还将要求客户端也发送其证书,并且还将在其密钥库中检查该证书是否存在,如果存在,那么它将很高兴,否则它将结束SSL握手。
您需要什么:
我们是否必须将用户名连接到证书/密钥的别名?
不,您只需要在服务器的“信任密钥库”中显示客户端证书。但是,由于您的客户端应用程序和服务器位于同一台计算机上,因此我建议您使用不同的JVM安装程序来运行客户端和服务器,以便您支持不同的证书。
如果是,我们如何使用别名中密钥库中的特定证书/密钥?还是有另一种方法?我的意思是我们如何才能根据名称“挑选”特定的证书
不适用。
客户进入时有没有办法创建他们的证书?(我们希望证书由已经实施的CA签名)
证书应事先准备好,并且证书的创建和签名是一个复杂的过程,您必须生成CSR等。
请仔细阅读我的答案,以获取执行此操作时可能需要的其他详细信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句