【发布时间】:2012-06-23 23:52:24
【问题描述】:
假设我编写了两个 Java 应用程序:Ping.jar 和 Pong.jar,它们被部署并运行在两个单独的服务器上(Ping.jar 部署到 srv-01.myorg.com 和 Pong.jar 部署到 srv-02.myorg.com),并且这两个应用程序需要通过 SSL 相互通信(2 路)。我们还假设每个应用都有自己的 SSL 证书。
- 作为一名 Java 程序员,我如何编写代码
Ping和Pong来验证彼此的 SSL 证书?每个 CA 是否提供某种我可以使用的 RESTful API,例如HttpClient? Java 是否有自己的证书验证 API?是否有我可以使用的开源第三方 JAR 或服务?
我很惊讶当我在网上搜索这个时出现的很少。
【问题讨论】:
-
您使用什么网络服务器?启用 SSL(在您的情况下为相互 SSL)通常是服务器配置的情况,而不是编码。
-
好吧,让我们说两个场景:(1) 使用原始套接字/NIO 的纯 Java 应用程序(正如我上面的用例所暗示的那样),以及 (2) Oracle GlassFish。我现在实际上对这两个用例都感兴趣。
-
广告 1. 从未尝试过,从头开始这可能是一项艰巨的任务。广告2.查看this link,特别是关于SSL和客户端证书认证的两个问题。还有更多内容,请阅读有关安全性的 Glassfish 文档,但就像我说的,这完全是关于配置,而不是编码。