对于具有多个应用服务器和多个客户端的系统,我想介绍相互身份验证以及 TLS 提供的其他安全保护。
服务器和客户端可能位于不同的网络上,也可能位于同一网络上。
每个实体(客户端或服务器)都有自己的存储其私钥/公钥对的密钥库和包装公钥的 X.509 证书。但是,此时,证书是自签名的。因此,它不会被其他通信实体验证。经过一番研究,我研究了一些解决方案:
- 创建将签署证书的私有 CA。如果我理解得很好,CA 的证书必须存在于每个实体的信任库中,以便其他实体的证书可以使用 CA 的证书进行验证。
- 创建私有 CA 作为第一个解决方案。但是,私有 CA 的证书是由商业 CA(例如 Verisign)签署的。我不知道它为以前的解决方案增加了什么。
- 由商业 CA 签署每个实体的证书。但这种解决方案似乎很昂贵。
- 仅使用自签名证书。每个实体的证书都是由它自签名的,并且必须添加到它想要与之通信的每个实体的信任库中。
这是我第一次接触安全。在您认为有效的解决方案中,您推荐哪一种?
谢谢