我目前正在进行一个项目,在该项目中,我创建了一个CA证书,并为该CA证书创建了几个子证书。证书将用于保护SAMLV2设置中的服务器间通信,因此我将为身份提供者提供一个证书,为服务提供者提供一个证书。用户/浏览器不会验证证书,所以只有服务器才需要信任我的自定义CA。我的证书树看起来是这样的:
现在,我听到很多人说在生产中使用国产证书是不好的。但是当我问为什么的时候,人们通常只是喃喃地说一些关于安全的事情,而从不深入细节。是否有任何技术原因不使用我自己的证书在生产中?我想不出任何..。当然,我意识到,如果我失去了对根证书的控制,任何人都可以开始创建各种证书。但是在这种情况下,他们还必须在我的服务器上安装证书,并配置saml应用程序来使用它们。只有到那时,他们才能开始生成虚假的saml请求和对我的应用程序的响应。
如果这是唯一的问题,这个解决方案(在生产中使用国产证书)仍然比我们今天的登录设置更好。
发布于 2009-02-09 11:31:13
问问自己证书能证明什么。
如果您得到了一个由信誉良好的CA颁发的证书,那么它将证明证书持有者已经将他们的身份验证给了该CA,并达到了他们的证明标准。
如果您得到一个由临时CA颁发的证书,那么它就证明有人知道如何制作证书。
如果你控制了谈话的两端,我认为有你自己的私密CA是可以的。你会信任你自己的CA。您可能确实可以使此非常安全(方法是将CA私钥保持在离线安全的位置,并使签名成为一个运动鞋练习)。
困难的是,如果你需要说服其他人信任你的CA。他们为什么要这样?您需要让他们相信这样做是安全的,并且他们将有将您的CA证书添加到客户端的管理开销。
发布于 2009-02-19 08:00:14
因为您只是使用证书来保护网络流量,而不是对用户/计算机进行身份验证,所以听起来您对使用MakeCert.exe有合法的使用。
我觉得有一件事值得一提。在您花费一些时间使用MakeCert.exe接口之后,您可能会考虑使用独立的根证书服务器。
考虑以下几点:
Windows的所有版本都包括免费的证书服务器服务,Windows独立CA服务器安装起来非常简单,configure
过去,我首先从selfssl.exe开始,最后迁移到MakeCert.exe生成根证书,然后颁发客户端证书。但是,在挣扎于语法之后,并且总是必须记住我把根证书放在哪里之后,我切换到在虚拟机中使用独立的根CA。
发布于 2009-02-09 11:36:29
如果证书仅在内部传递,在您自己的服务器之间传递(客户端不以某种方式使用),那么使用您自己的内部CA是完全可以接受的。
然而,有一个建议-不要让你的根CA颁发你的提供者证书。相反,使用根CA创建中间CA -然后使用它颁发提供程序证书。当您必须开始管理证书过期、扩展系统/基础结构、吊销列表等时,这将有助于您更长期地工作。
https://stackoverflow.com/questions/527768
复制相似问题