签署证书的解决方案

时间:2012-07-19 09:15:12

标签: java security ssl certificate jsse

对于具有多个应用服务器和多个客户端的系统,我想介绍相互身份验证以及TLS提供的其他安全保护。

服务器和客户端可能位于不同的网络上,也可能位于同一网络上。

每个实体(客户端或服务器)都有自己的密钥库,用于存储其私钥/公钥对以及包装公钥的X.509证书。但是,此时证书是自签名的。因此,其他通信实体不会对其进行验证。经过一番研究,我看了一些解决方案:

  1. 创建将签署证书的私有CA.如果我 明白,CA的证书必须存在于 每个实体的信任库,以便其他实体的证书可以 使用CA的证书进行验证。
  2. 创建私有CA作为第一个解决方案。但是,私有CA的证书由商业CA(例如Verisign)签署。一世 不知道它为以前的解决方案增加了什么。
  3. 由商业CA签署每个实体的证书。但这个解决方案似乎很昂贵。
  4. 仅使用自签名证书。每个实体的证书都由它自签名,必须添加到每个实体的信任库中 它希望与之沟通的实体。
  5. 这是我第一次获得安全性。在您认为有效的解决方案中,您推荐哪一种?

    由于

1 个答案:

答案 0 :(得分:1)

我为您提供了便于阅读的选项。

您的选项4具有与第一个类似的安全和管理细节。即您的选项范围缩小为自己与第三方CA服务。虽然您可以从CA权威机构购买自己的CA证书,但这需要花费很多钱。但CA销售人员根据具体情况决定了“多少”。

就管理复杂性而言,我将它们按以下顺序排列(首先是最简单的): 3,1,2,4

在选项1,2,4中,您必须管理您的证书,这需要知道PKI及其安全程序(除了纯粹的技术,您需要确保私钥受到保护)以及用于证书生成和管理的软件(对于大多数活动来说,openssl等都是不够的,很可能你需要编写自己的代码来生成证书。

拥有OCSP服务器也是一个好主意,如果选项1,2,4,你必须自己运行。