You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

不同路由使用不同client certificate及同站点二次证书提示方案咨询

同站点二次触发客户端证书选择提示方案

主流浏览器(Chrome、Edge、Firefox等)默认会将同站点的客户端证书选择结果绑定到TLS会话缓存中,缓存有效期持续到浏览器进程重启,这是默认的安全体验策略,避免用户重复输入PIN码、重复选择证书,你可以通过以下方案实现二次触发选择:

  • 多子域名隔离TLS上下文
    浏览器会将不同子域名视为完全独立的TLS会话场景,你可以为需要使用不同客户端证书的业务场景配置两个独立子域名,比如cert-a.example.com和cert-b.example.com,两个域名指向同一套后端服务即可。用户访问不同子域名时会触发独立的证书选择流程,不会复用之前的缓存结果,这个方案兼容性最好,适配所有支持客户端证书的浏览器版本。
  • 服务端主动触发TLS重协商
    如果你使用的服务端(Nginx、Apache、Node.js等)支持TLS重协商,可以在需要二次选择证书的接口路由上,单独配置客户端证书校验规则,强制触发TLS重协商,要求用户重新提交证书。注意TLS 1.3协议已经官方废弃了重协商特性,Chromium 80+版本也默认拦截非HTTPS、低于TLS 1.2版本的重协商请求,这个方案仅适配TLS 1.2及更低版本的场景。
    以Nginx为例的配置参考:
    location /switch-cert-auth {
      # 开启客户端证书校验,可选配置为强制校验或仅采集证书信息
      ssl_verify_client optional;
      ssl_verify_depth 2;
      # 关闭当前路径的TLS会话缓存,避免复用之前的证书选择结果
      ssl_session_cache off;
    }
    
  • 扩展程序场景的缓存清理方案
    如果你开发的是Chrome扩展程序,可以调用chrome.webRequest的私有API清除指定站点的TLS会话缓存,触发新的证书选择流程。普通网页上下文没有权限调用这类浏览器私有接口,不适用该方案。

额外提示:如果你的站点已经升级到TLS 1.3,优先选择多子域名的方案,不要使用TLS重协商,避免出现兼容性问题。

内容的提问来源于stack exchange,提问作者Savo Pejović

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:06:04