Chrome证书选择出现多次
Chrome Certificate Selection appears multiple times
我在内联网服务器中有一个启用了 ssl 的站点。它具有由有效 CA 颁发的官方服务器证书。然而它自上个月起就过期了。我使用 USB A3 令牌访问它。由于它已过期,我为其创建了一个安全例外。如果我使用 firefox,一切正常。
问题是当我尝试使用 Chrome 访问它时。我第一次访问时,它正确地提示我令牌密码,然后是证书选择对话框。但在那之后,它会在我输入的每个页面上不断显示认证选择弹出窗口(而不是令牌密码)。相反,它应该询问一次并将证书选择缓存到其他页面,就像 firefox 一样。
该站点使用 Apache、PHP、Symfony 和 PostgreSQL。它有一个 apache 重定向规则将 /domainname.com/site/app.php/ 转换为 /domainname.com/site/
有人知道这是为什么吗?
找到了:
This问题提到了我想要的配置。但它没有说明如何使用它。
我发现此页面 here, explains how to configure policies for Chrome/Chromium. Now, in Chrome discussion forum (here),我发现在 Linux 中 Chrome 和 Chromium 使用相同的策略目录 (/etc/opt/chrome/policies/managed)。如果您将有效的策略文件放在那里,它将加载它。所以仔细检查有效性。它必须是 json 格式,如模板所示。因此,请记住它的名称以 .json 扩展名结尾。
现在我们可以使用上述问题中提到的策略。将此配置放入策略文件中:
{
"AutoSelectCertificateForUrls": ["{\"pattern\":\"*\",\"filter\":{\"ISSUER\":{\"CN\":\"<Your issuer CN>\"}}}"],
}
您显然用证书中的正确 CN 替换了 <Your issuer CN>
。
重新启动 Chrome,您就完成了。
要检查政策是否由 Chrome/Chromium 正确加载,您可以使用以下 url:chrome://policy
在将过滤器更改为更宽松之后,此方法有效,如下所示:
{
"AutoSelectCertificateForUrls": ["{\"pattern\":\"*\",\"filter\":{}}"]
}
另请参阅政策,尝试以下操作:chrome:policy
对于在 Windows 7 上遇到相同问题的任何人,以下步骤适用于 Chrome 77.0.3865.105:
根据 Chromium documentation,应在注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\AutoSelectCertificateForUrls
中设置配置(如果注册表项尚不存在,请创建)。证书自动选择的模式创建为字符串值 (REG_SZ
),名称为 1
、2
、3
等...请注意 JSON不需要转义,因此有效配置为 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\AutoSelectCertificateForUrls = {"pattern":"*","filter":{}}
我在内联网服务器中有一个启用了 ssl 的站点。它具有由有效 CA 颁发的官方服务器证书。然而它自上个月起就过期了。我使用 USB A3 令牌访问它。由于它已过期,我为其创建了一个安全例外。如果我使用 firefox,一切正常。
问题是当我尝试使用 Chrome 访问它时。我第一次访问时,它正确地提示我令牌密码,然后是证书选择对话框。但在那之后,它会在我输入的每个页面上不断显示认证选择弹出窗口(而不是令牌密码)。相反,它应该询问一次并将证书选择缓存到其他页面,就像 firefox 一样。
该站点使用 Apache、PHP、Symfony 和 PostgreSQL。它有一个 apache 重定向规则将 /domainname.com/site/app.php/ 转换为 /domainname.com/site/
有人知道这是为什么吗?
找到了:
This问题提到了我想要的配置。但它没有说明如何使用它。 我发现此页面 here, explains how to configure policies for Chrome/Chromium. Now, in Chrome discussion forum (here),我发现在 Linux 中 Chrome 和 Chromium 使用相同的策略目录 (/etc/opt/chrome/policies/managed)。如果您将有效的策略文件放在那里,它将加载它。所以仔细检查有效性。它必须是 json 格式,如模板所示。因此,请记住它的名称以 .json 扩展名结尾。 现在我们可以使用上述问题中提到的策略。将此配置放入策略文件中:
{
"AutoSelectCertificateForUrls": ["{\"pattern\":\"*\",\"filter\":{\"ISSUER\":{\"CN\":\"<Your issuer CN>\"}}}"],
}
您显然用证书中的正确 CN 替换了 <Your issuer CN>
。
重新启动 Chrome,您就完成了。 要检查政策是否由 Chrome/Chromium 正确加载,您可以使用以下 url:chrome://policy
在将过滤器更改为更宽松之后,此方法有效,如下所示:
{
"AutoSelectCertificateForUrls": ["{\"pattern\":\"*\",\"filter\":{}}"]
}
另请参阅政策,尝试以下操作:chrome:policy
对于在 Windows 7 上遇到相同问题的任何人,以下步骤适用于 Chrome 77.0.3865.105:
根据 Chromium documentation,应在注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\AutoSelectCertificateForUrls
中设置配置(如果注册表项尚不存在,请创建)。证书自动选择的模式创建为字符串值 (REG_SZ
),名称为 1
、2
、3
等...请注意 JSON不需要转义,因此有效配置为 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\AutoSelectCertificateForUrls = {"pattern":"*","filter":{}}