我目前正在开展一个项目,在该项目中我创建了一个 CA 证书和几个子证书到该 CA 证书。这些证书将用于保护 SAMLV2 设置中的服务器间通信,因此我将拥有一个用于身份提供者的证书和一个用于服务提供者的证书。用户/浏览器不会验证证书,因此只有服务器需要信任我的自定义 CA。我的证书树看起来像这样:
- CustomRootCACert
- CustomIdentityProviderCert
- CustomServiceProviderCert
现在,我听到很多人说在生产中使用自制证书不好。但是当我问为什么时,人们通常只是在安全方面喃喃自语,但从不深入细节。是否有任何技术原因不在生产中使用我自己的证书?我想不出……当然,我意识到如果我失去对根证书的控制权,任何人都可以开始创建各种证书。但在这种情况下,他们还必须在我的服务器上安装证书并配置 saml 应用程序以使用它们。只有这样他们才能开始生成虚假的 saml 请求和对我的应用程序的响应。
如果这是唯一的问题,那么这个解决方案(在生产中使用自制证书)仍然会比我们今天的登录设置更好。