有没有办法在用户已经(最近)访问该站点后重新请求客户端 TLS 证书 - 而无需清除历史记录?最好用nginx。
nginx 的工作方式ssl_verify_client optional_no_ca
是,在第一次访问时选择 none 后,浏览器会记住这一点,并且不会再次询问 - TCP(以及 TLS)连接关闭时的事件(即使没有保持活动,也可以强制执行此操作对于某些根)。
TLS 重新协商已在 TLS.1.3 中被禁用,但这谈到 了SSL_verify_client_post_handshake
- 可以以某种方式使用它吗?
还是这是浏览器历史记录?(即网络服务器可以做任何事情,而浏览器会继续所做的选择)
可行但不理想的解决方法,因为用户不能只单击链接:
- 让用户重新启动浏览器(或者在 Firefox 的情况下:清除“活动登录”“清除最近历史记录”弹出窗口);
- 对“无证书”和“有证书”站点使用不同的来源(即端口或域);
该指令
ssl_verify_client
不能用于比server
块更低的配置级别,因此要具有不同的设置,您将需要使用不同的server
块,这也意味着不同的主机名和/或端口。因此,正如您所说,您唯一真正的解决方案是: