【发布时间】:2015-09-10 14:44:16
【问题描述】:
假设我想发布一个商业产品,它有两个组件,用 Java 编写,使用 RESTful API 在本地网络上相互通信。它可以是音乐管理器、联系人数据库、食谱 --- 重要的是这是一个合理且极有可能的场景。
请注意,我说的是通过本地网络相互通信的两个组件——而不是与我的服务器通信。
那么如何确保通信安全?
我知道如果我为全世界设置一个 HTTP 服务器,我可以(甚至便宜地)购买 SSL 证书。我已经做到了。但是我不能告诉用户去购买证书——他们不知道我在说什么,也永远不知道如何安装它。
那我该怎么办?向每个人发送我自己的自签名证书并做一件非常糟糕的事情,比如disable certificate validation in Java?可怕,我知道。但至少信息不会以纯文本形式出现。
谁有更好的解决方案?
【问题讨论】:
-
您的链接答案提供了另一种解决方案:不是禁用自签名证书的证书验证,而是“导出证书 (...) 并将其导入您的 JVM 信任库”
-
您想完全隐藏请求的内容还是只是确保它们不是来自任何地方并被接受?
-
我想尽可能地保护通信,但主要是我不希望通信以明文形式通过网络(我并不是说我只想混淆它)。
标签: java rest ssl ssl-certificate