【发布时间】:2013-01-26 12:53:27
【问题描述】:
我需要使用客户端证书对 Azure 云服务 Web 角色 的请求进行身份验证。如何将证书颁发机构 (CA) 根证书放入正确的受信任存储区?
我尝试将其上传到管理门户中,然后使用 AuthRoot 商店名称在服务定义文件中对其进行定义:
<Certificate name="RootCA" storeLocation="LocalMachine" storeName="AuthRoot" />
真正奇怪的是它可以工作......但只是有时。它可能在实例重启后工作,但在服务更新或另一个实例重启后可能无法工作。这似乎是 Azure 中的一个错误。
当我说“工作”时,我的意思是服务器成功接受了客户端证书并处理了请求。 当我说“不起作用”时,我的意思是服务器在证书检查后没有协商连接,并且“请求被中止:无法创建 SSL/TLS 安全通道”。客户端抛出异常。
如何让它稳定运行?
UPD:
在系统 Windows 事件日志中找到这条记录(来源为 Schannel):
当请求客户端身份验证时,此服务器发送一个列表 客户信任的证书颁发机构。客户端使用这个 列表以选择服务器信任的客户端证书。 目前,该服务器信任如此多的证书颁发机构,以至于 列表太长了。因此,此列表已被截断。这 这台机器的管理员应该检查证书 信任客户端身份验证的权威机构并删除那些 真的不需要被信任。
【问题讨论】:
标签: azure certificate azure-web-roles client-certificates