我们有一个使用客户端证书进行身份验证的 Web 应用程序,这会给拥有客户端证书的用户带来问题,但不会给我们的应用程序带来问题。
确实,在启动 SSL 连接时,他们会弹出一个窗口要求提供证书,但他们没有我们应用程序的证书(他们有另一个应用程序的一些客户端证书),所以他们必须关闭弹出窗口并使用用户和密码登录。
是否可以向用户发送我们在 SSL 协商时需要的 CN,以便如果用户没有适当的证书,浏览器就不会显示弹出窗口?
我发现了 SNI,它是反过来的,用于服务器选择向客户端呈现哪个证书,但相反的情况似乎不存在。
任何想法?
答案1
服务器只能请求客户端证书,也可以不请求,此外,服务器还限制哪些 CA 可以作为客户端证书的颁发者。客户端如何处理这些信息完全由客户端决定,即服务器无法控制它。
服务器无法只选择性地请求证书。服务器可以忽略没有证书的情况,但客户端不知道证书是否必不可少,它只看到请求了证书。这意味着客户端将请求证书,因为服务器要求客户端提供证书。