0

我的问题与Stackoverflow 上的这个问题有些相关。但是,我的服务器将侦听单个端口。服务器将只信任客户端,因为它自己找到了客户端的公钥证书。如果服务器将在自己的文件系统中查找其公钥证书(在正常的、不安全的连接上),我希望客户端发送名称。如果服务器找到证书,那么它会将旧的、不安全的客户端连接转换为 SSL 连接。这甚至可能吗?如果是这样,怎么做?

4

2 回答 2

2

您似乎不了解 SSL 的实际工作原理。如果您将其设置为需要客户端身份验证,则客户端将在握手期间发送其证书,服务器可以获取它并以它喜欢的任何方式对其进行验证。在 Java 中,这意味着HandshakeCompletedListener在服务器中安装 a 或使用SSLSocket.getSession.getPeerCertificate().

于 2013-04-26T10:23:20.937 回答
1

您可以通过向服务器发送客户端证书名称的POST普通请求来完成此操作。在响应中可能会有一个结果,指示客户端通过 SSL 通过不同的端口 重新连接到服务器。正如您所期望的那样, 为两者使用一个端口是不可能的,而且没有意义。 恕我直言,您的要求通常没有意义。 HTTP

HTTPHTTPS

于 2013-04-26T10:39:37.560 回答