Answers:
Safari的客户端证书和相关首选项存储在 钥匙串经理 用一个 类 的 证书 。
当您选择要用于网站的证书时,它会在Keychain Manager中存储另一个条目 类 的 身份偏好 。不幸的是,默认情况下,它仅存储您所在的确切页面。名称和位置都设置为页面的URL。
要解决此问题,您只需编辑其中一个标识首选项条目并更改 哪里 部分到基本URL,比如 https://somesslsite.com/
(尾随斜线很重要!)。我也更新了 名称 同样的事情,以防止混淆。然后,您可以删除所有其他 身份偏好 该网站的条目。
如果您的证书已过期且您必须添加新证书,我建议您删除旧证书 证书 条目和所有相关的 身份偏好 条目。
找到 证书 和 身份偏好 条目,打开钥匙串管理器,确保 所有项目 选中,并根据需要搜索部分URL和/或证书名称。你可能没有很多,所以如果这不起作用,只需按列表排序 类 你应该能够轻松找到它们。
注意:我自己回答这个问题,因为我想出来但想要为自己和他人坚持这些知识。
现在,OS X的更新版本支持部分路径和通配符。因此,您可以使用Keychain Manager为整个网站和/或域创建身份首选项。
部分路径示例(请注意,需要使用尾部斜杠!):
https://server.mydomain.com/
通配符示例:
*.mydomain.com
这里有详细信息(来自'man security'页面):
在10.5.4之前,SSL / TLS客户端身份验证的身份首选项只能基于每个URL进行设置。正在访问的URL必须与服务名称完全匹配才能使首选项生效。
在10.5.4中,通过使用具有部分路径URL的服务名称来匹配同一服务器上的更多特定路径,可以在每个服务器的基础上指定身份首选项。例如,如果标识首选项为“ https://www.apache-ssl.org/ “存在,它将生效” https://www.apache-ssl.org/cgi/cert-export “,依此类推。请注意,部分路径URL必须以尾部斜杠字符结尾。
从10.6开始,可以使用通配符在每个域的基础上指定标识首选项
*
作为服务名称的最左侧组件。与SSL通配符不同,身份首选项通配符可以匹配多个子域。例如,名称的标识首选项*.army.mil
会匹配server1.subdomain1.army.mil
要么server2.subdomain2.army.mil
。同样,偏爱*.mil
将两者都匹配server.army.mil
和server.navy.mil
。
我一直在努力解决这个问题,上面的回答让我意识到发生了什么。
如果您拥有网站的证书并且已过期,那么您应该删除旧证书。然后还删除 身份偏好 输入该网站的项目。这些旧项目与证书一样过期。删除它们后,将正确存储和使用任何新的标识首选项。
所以:
然后,您可以浏览到该网站,从列表中选择新证书,这将记住该特定的Web地址。目前我们在Safari 5.1.3并且此版本不会使用任何通配符作为首选项,您将不得不为网址中的每个更改添加首选项...希望这有助于某人,只是把它放在那里,因为我没有找到任何完整的答案。