我在Web服务器应用程序中使用https://github.com/TooTallNate/Java-WebSocket进行套接字通信。

我想在服务中设置相互认证。我已经在服务器和客户端应用程序中设置了密钥库和信任库。我无法弄清楚的是,我需要更改代码以执行双向身份验证吗?现在,我能够确认通信是通过安全通道进行的。是否有任何方法可以验证2 way SSL authentication (mutual authentication)是否正在发生?我正在Websphere Liberty上运行我的服务

Java websocket中的ssl通信源:https://github.com/TooTallNate/Java-WebSocket/blob/Java-WebSocket-1.3.0/src/main/java/org/java_websocket/SSLSocketChannel2.java

我看到在Liberty中,我可以请求客户端证书https://www.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.wlp.doc/ae/twlp_sec_clientcert.html
但是,为什么需要在浏览器中添加证书?我不应该在服务器的信任库中添加客户端证书吗?

最佳答案

要启用客户端身份验证或相互身份验证,您将需要启用Liberty上的示例中提供的clientAuthentication =“ true”。

           <ssl id="myDefaultSSLConfig"
           keyStoreRef="defaultKeyStore"
           trustStoreRef="defaultTrustStore"
           clientAuthentication="true"
           sslProtocol="TLS" />


如以上链接所述,浏览器需要添加或接受服务器证书,并且服务器还需要具有客户端的签名者证书。客户端和服务器都需要建立信任才能相互通信。


  从上面的链接:https://www.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.wlp.doc/ae/twlp_sec_clientcert.html
  
  
    
    将客户端证书添加到浏览器。请参阅浏览器的文档以添加客户端证书。
    确保服务器信任使用的所有客户端证书。

关于java - 在Websphere Liberty中设置2种方式的SSL身份验证并进行验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40012485/

10-10 04:20