代码之家  ›  专栏  ›  技术社区  ›  John B

内部使用的SSL签名证书

  •  9
  • John B  · 技术社区  · 16 年前

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

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

    因此,在我的例子中,如果同一个组织负责通信两端的组件,以及两者之间的所有内容,那么公共信任的权威将是毫无意义的。换句话说,如果我为自己的服务器生成并签署证书,我知道它是可信的。也不会要求组织外部的任何人信任此证书。这是我的推理-我是对的,还是使用已知权威机构的证书有潜在的优势?

    3 回复  |  直到 16 年前
        1
  •  5
  •   bignum    16 年前

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

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

        2
  •  0
  •   Aren    16 年前

    我认为这是相当安全的,除非你认为一个忍者渗透者会把你的服务器换到你身上。

    第三方的存在使得“启动并生成”一个新证书变得更加困难。有人可以在一台新机器上用相同的细节重新创建一个自签名证书,它不会是同一个证书,你也必须为它添加一个例外,但你的用户可能不知道区别。

        3
  •  0
  •   Nasko    16 年前

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

    如果最终扩展到组织之外,则只需将根证书分发给要通信的各方。这实际上为您的合作伙伴提供了一个细粒度的控制,即相对于公共CA基础架构,他们希望给您多少信任。

    推荐文章