【发布时间】:2014-10-24 08:34:48
【问题描述】:
我一直在使用 Java 编写服务器来接收客户端请求。它工作正常,但我不知道如何为身份验证模块实现 SSL / https。
我研究过机制,但是当我尝试使用 ajax 请求在 https 协议下请求我的服务器时,请求标头以及表单数据都是 自动加密 ....我认为客户端(在这种情况下是浏览器)应该向服务器询问用于加密的公钥。现在服务器刚刚收到大块的加密字符,不知道发生了什么。
所以我的问题是如何以正确的方式实现 SSL 身份验证,至少我的服务器如何将公钥传递给客户端进行加密。
【问题讨论】:
-
如果您想编写自己的身份验证模块,您必须从头开始实现 TLS/SSL 协议并遵循它。否则,当您收到“加密字符块”(您应该能够使用您的服务器私钥解密)时,这部分已经发生
-
你的服务器是如何实现的?你是在容器内运行(如
Jetty或Tomcat),还是直接使用SSLSockets进行通信?正确设置后,加密对双方都是透明的。 -
好吧,我没有使用任何现有的容器,只是使用普通的 SSLSockets 和 SSLServerSocket 进行直接通信。我执行了 SSLSocket.startHandshake(),似乎没有错误,但是 ajax 请求只是返回了“ERR_INSECURE_RESPONSE”。同样,浏览器没有警告证书或对不安全网站的任何访问......所以我认为我的实现中一定遗漏了一些东西......有什么想法,伙计们?
标签: java ssl encryption