0

我正在使用弹簧安全性处理登录页面。该页面需要为用户提供一个选项来使用他们的证书而不是用户名和密码。但是我陷入以下情况:

假设您在浏览器中安装了由 XYZ 公司签署的证书。现在服务器(受信任的 XYZ)想要验证证书......但问题是:

Q1。服务器如何“请求”浏览器提供“正确的证书”(假设您的浏览器中安装了多个证书)?

Q2。是否可以在登录页面上有一个按钮,以便用户仅在单击该按钮时才能发送他的证书?

Q3。假设服务器收到了您的证书,服务器能否仅通过查看证书链(由 XYZ 公司签名)说“是的,您有证据证明您是谁”?

谢谢,

来自安全新手:)

4

1 回答 1

2

这个有可能。您所要做的就是设置一个需要客户端证书的 ssl 站点。浏览器开箱即用地支持这一点,大多数提供内部证书存储,即显示来自操作系统的用户证书存储。您应该查阅您的服务器框架文档,了解如何在 ssl 连接上打开客户端证书要求。

至于 q2,您可以有两个网站,即您的应用程序和您的身份验证提供程序。该应用程序显示按钮,这将重定向到您需要客户端证书的身份验证提供程序。然后,身份验证提供者使用任何 sso 协议(oauth2、saml)将用户身份返回给应用程序。

至于证书验证,您可以验证链或在服务器端在用户名和证书指纹之间进行映射。

于 2013-01-07T00:24:11.607 回答