如何修复错误 ACS50017

更新时间:2015 年 6 月 19 日

适用于:Azure

本主题提供有关 ACS50017 错误的可能原因和解决方案的信息。

ACS50017 的可能原因

当 ACS 无法为受信任的标识提供者的签名证书(例如受信任的 ADFS 服务器)生成证书链时,ACS 将返回 ACS50017。 出现以下情况时会发生此错误。

  1. ACS 无法验证用于从标识提供者生成令牌数字签名的证书。

  2. 证书链中的商业证书没有“访问方法=证书颁发机构颁发者”扩展,该扩展包含直接父证书的链接。 有关 ACS 错误代码的详细信息,请参阅 ACS 错误代码

  3. ACS 无法从根证书颁发机构检索中间证书来验证信任链。

ACS50017 通常显示为某个完整错误消息的一部分,该消息可能包括 ACS50008 错误消息。

ACS20001: An error occurred while processing a WS-Federation sign-in 
Inner message: ACS50008 : SAML token is invalid
ACS50017: Certificate validation failed for certificate '<Certificate subject name>' issued by '<Certificate issuer name>'. StatusInformation: 'A certificate chain could not be built to a trusted root authority.&#xD;&#xA;'. X509ChainStatusFlags: 'PartialChain'

ACS 要求从受信任的证书颁发机构获取的商业证书包括具有“Access 方法=证书颁发机构颁发者”扩展的“颁发机构信息访问”。 扩展值必须包括用于链接其父证书 (.crt) 可公开下载副本的 URL。 此要求适用于证书链中的每个证书,根证书及其直接子证书除外。 如果未满足这些条件,ACS 将返回 ACS50017 错误。

此代码显示了某个虚构证书的证书颁发机构颁发者扩展格式。

[1]Authority Info Access
     Access Method=Certification Authority Issuer (1.2.3.4.5.6.7.88.9)
     Alternative Name:
          URL=http://pki.fabrikam.org/Certificate/Fabrikam_RCA.crt

ACS 在 ACS 虚拟机上的中间证书存储中下载和缓存证书 (VM) 。 在回收 VM 之前,中间证书将在该 VM 保持可用。 缓存可以提高性能,并允许 ACS 访问中间证书,即使网络问题阻止它与根证书颁发机构联系。

当中间证书存储中找不到证书条目时,ACS 将返回 ACS50017 错误, (VM 上的缓存) ,并且对根证书颁发机构的网络调用失败。 如果 Windows Aure 负载均衡器将 ACS 客户端定向到尚未缓存标识提供者证书的 ACS VM,则 ACS50017 错误可能会间歇性地发生。

针对 ACS50017 的潜在解决方案

使用下列任一方法解决该问题并防止错误重复出现。

  • 如果证书链中的商业证书有问题,你可以将商业证书替换为自签名证书。 有关详细信息,请参阅 证书和密钥

  • 如果证书链中的证书不包含所需的“访问方法=证书颁发机构颁发者”扩展,或者扩展中不包含 URL,或者 URL 未链接到父证书的公开副本,则你需要替换该证书。

  • 如果证书具有所有必需的元素,但 ACS 在三次尝试后无法获取它,则由于临时网络条件或证书颁发机构服务器上的问题,操作可能会超时。 证书提供商也许能够改进证书获取性能。

  • 重试请求。 如果负载平衡器可将请求定向到具有缓存证书的 VM,或者已解决了阻止访问证书颁发机构的连接问题,则先前失败的请求将会成功。

另请参阅

概念

ACS 错误代码
ACS 重试指导原则
证书和密钥
故障排除 ACS
如何修复错误 ACS50008

其他资源

证书链引擎 (CCE)