【发布时间】:2017-10-25 04:32:40
【问题描述】:
我想在 Tomcat 8 上设置相互身份验证。 我已经完成了密钥的设置,主要是密钥库和信任库,并且该设置正在使用 Firefox 测试。 访问 URL 时,系统会提示我输入证书,并在提供适当的证书时允许我访问。
我缺少的一块拼图是,我拥有的信任库具有 CA 证书和少数客户的公钥。此 CA 应该是自签名 CA,而不是来自网络上已知的权威机构。
- 我只是不想让任何人访问,只有使用我的 CA 的人应该能够访问。假设 abc.com 拥有由权威 godady 或 verisign 签署的证书,这些都是众所周知且受信任的,应该无法调用。我想要严格的访问权限。
- 在我的信任库中,我只想保留 CA 没有公钥,我不想随着客户的成长不断添加证书。客户会使用我的 CA。
我认为我在信任库中的自签名 CA 和仅在链中使用我的 CA 获取证书的客户端对于安全(仅使用我的 CA 的客户端)可扩展解决方案来说应该足够好,我不必继续添加客户端在信任库中。
请告知我的假设对于基于生产云的系统是正确的。
感谢您的宝贵时间。
【问题讨论】:
-
您将身份验证与授权混为一谈。 TLS 基于 PKI 进行身份验证。授权是应用程序的责任。通过尝试结合这些功能,您正在让自己的生活变得艰难。您所要做的就是让您的应用程序,或者更可能是您的 Web 服务器,检查证书的主题或签名者,以决定应该为他分配哪些角色。
-
@EJP 感谢您的评论,是的,在应用层会有检查,因为您建议从证书中识别用户并授权他使用部分应用程序,我唯一关心的是上述设置,不应该身份验证有任何漏洞,基本上任何有证书的人都不应该打电话,我应该能够用我自己的 CA 控制证书。
标签: java ssl jakarta-ee ssl-certificate