11

我有一个分布式应用程序,由许多通过 TCP(例如 JMS)和 HTTP 通信的组件组成。所有组件都在内部硬件上运行,具有内部 IP 地址,并且公众无法访问。

我想使用 SSL 使通信安全。从知名证书颁发机构购买签名证书是否有意义?还是我应该只使用自签名证书?

我对受信任证书的优势的理解是,权威是一个可以被公众信任的实体——但这只是当公众需要确保特定域的实体是他们所说的那个人时的问题是。

因此,在我的情况下,如果同一个组织负责通信两端的组件以及介于两者之间的所有内容,那么公众信任的权威将毫无意义。换句话说,如果我为自己的服务器生成并签署证书,我就知道它是值得信赖的。并且不会要求组织外部的任何人信任此证书。这是我的推理 - 我是正确的,还是使用来自已知权威的证书有一些潜在的优势?

4

3 回答 3

5

您无需为封闭的社区项目使用外部公共 CA。在许多大型组织中,他们运营内部 PKI 来为此类内部项目颁发证书。使用 PKI 的一个优点是您可以基于单个安全分布的根证书/信任锚在各种组件之间建立信任关系。

但是,如果项目允许内部用户通过他们的 Web 浏览器安全地连接到内部服务,您可能需要考虑使用公共 CA 颁发的证书。另一种方法是确保可能需要连接到您的服务的每个浏览器都信任您的根证书;这是为了防止浏览器警告消息。

于 2010-04-20T16:04:16.980 回答
0

只要您的系统在您的组内运行并且没有扩展它的计划(并且计划确实会改变,因此请记住这一点),设置您自己的简单 PKI 基础架构就可以了。

如果您最终扩展到您的组织之外,您需要做的就是将您的根证书分发给您将进行通信的各方。这实际上为您的合作伙伴提供了一个细粒度的控制,他们希望对您与公共 CA 基础设施的信任程度。

于 2010-04-20T16:17:55.363 回答
0

我会说这是相当安全的,除非你认为忍者渗透者会在你身上交换你的服务器。

第 3 方的存在使“创建和生成”新证书变得更加困难。有人可以在具有相同详细信息的新机器上重新创建自签名证书,它不会是相同的证书,您也必须为其添加一个例外,但您的用户可能不知道其中的区别.

于 2010-04-20T15:22:08.390 回答