AD FS 故障排除 - 证书
Active Directory 联合身份验证服务 (AD FS) 需要特定的证书才能正常工作。 如果未正确设置或配置这些证书中的任何一个,则可能会出现问题。
所需的证书
每个必需的 AD FS 证书都有自己的要求:
- 联合身份验证信任:联合身份验证信任需要以下项之一:
- 声明提供程序 (CP) 和信赖方 (RP) 联合服务器的受信任根存储中存在链接到相互信任的 Internet 根证书颁发机构的证书 (CA)。
- 实施了交叉认证设计,每一方都与其合作伙伴交换了其根 CA。
- 在每一端导入自签名证书(若适用)。
- 令牌签名:每个联合身份验证服务计算机都需要令牌签名证书。 RP 联合服务器必须信任 CP 令牌签名证书。 RP 令牌签名证书必须受到从 RP 联合服务器接收令牌的所有应用程序的信任。
- 安全套接字层 (SSL):联合身份验证服务的 SSL 证书必须存在于联合服务器代理计算机上受信任的存储中,并且具有与受信任的证书颁发机构存储的有效链。
- 证书吊销列表 (CRL):对于具有已发布的 CRL 的任何证书,所有需要访问证书的客户端和服务器都必须可以访问此 CRL。
如果未正确配置上述任何要求,AD FS 将不起作用。
证书的常见检查事项
以下清单可帮助你解决证书问题:
- 确保证书是受到信任的。
- 确保客户端信任 SSL 证书。
- 令牌签名证书需要受到依赖方的信任。
- 检查信任链。 链中的每个证书都必须有效。
- 验证证书到期日期。
- 检查 CRL 辅助功能。
- 确保已填充 CRL 分发点 (CDP) 的字段。
- 手动浏览到 CDP。
- 确保证书未被吊销。
常见证书错误
下表列出了常见的证书错误和可能的原因。
事件 | 原因 | 解决方法 |
---|---|---|
事件 249:在证书存储中找不到证书。 在证书滚动更新方案中,当联合身份验证服务使用此证书进行签名或解密时,这可能会导致失败。 | 所提及的证书在本地证书存储中不存在,或者服务帐户对证书的私钥没有权限。 | 确保证书安装在 AD FS 服务器上的 LocalMachine\My store 中。 确保 AD FS 服务帐户具有对证书私钥的读取访问权限。 |
事件 315:尝试为声明提供方信任签名证书生成证书链期间出错。 | 证书已被吊销。 无法验证证书链。 证书已过期或尚未生效。 |
确保证书有效且未被吊销。 确保 CRL 可访问。 |
事件 316:尝试为信赖方信任签名证书生成证书链期间出错。 | 证书已被吊销。 无法验证证书链。 证书已过期或尚未生效。 |
确保证书有效且未被吊销。 确保 CRL 可访问。 |
事件 317:尝试为信赖方信任加密证书生成证书链期间出错。 | 证书已被吊销。 无法验证证书链。 证书已过期或尚未生效。 |
确保证书有效且未被吊销。 确保 CRL 可访问。 |
事件 319:生成客户端证书的证书链时出错。 | 证书已被吊销。 无法验证证书链。 证书已过期或尚未生效。 |
确保证书有效且未被吊销。 确保 CRL 可访问。 |
事件 360:已向证书传输终结点发出了请求,但请求中未包含客户端证书。 | 颁发客户端证书的根 CA 不受信任。 客户端证书已过期。 客户端证书是自签名的,不受信任。 |
确保颁发客户端证书的根 CA 存在于受信任的根存储中。 确保客户端证书未过期。 如果客户端证书是自签名证书,请确保已将其添加到受信任证书列表中,或将自签名证书替换为受信任证书。 |
事件 374:为声明提供方信任加密证书生成证书链时出错。 | 证书已被吊销。 无法验证证书链。 证书已过期或尚未生效。 |
确保证书有效且未被吊销。 确保 CRL 可访问。 |
事件 381:尝试为配置证书生成证书链期间出错。 | 配置为在 AD FS 服务器上使用的证书之一已过期或已被吊销。 | 确保所有配置的证书均未吊销且未过期。 |
事件 385:AD FS 检测到 AD FS 配置数据库中的一个或多个证书需要手动更新。 | 配置为在 AD FS 服务器上使用的证书之一已过期或即将过期。 | 通过替换来更新已过期或即将过期的证书。 (如果你使用的是自签名证书并且启用了自动证书滚动更新,则可以忽略此错误,因为它会自行解决。) |
事件 387:AD FS 检测到 AD FS Windows 服务使用的服务帐户无法访问联合身份验证服务中指定的一个或多个证书。 | AD FS 服务帐户对一个或多个已配置证书的私钥没有读取权限。 | 确保 AD FS 服务帐户对所有已配置证书的私钥具有读取权限。 |
事件 389:AD FS 检测到一个或多个信任需要你手动更新其证书,因为它们已过期或即将过期。 | 已配置的合作伙伴的证书之一已过期或即将过期。 此事件可以应用于声明提供方信任或信赖方信任。 | 如果你是手动创建此信任的,请手动更新证书配置。 如果是使用联合元数据创建信任的,则一旦合作伙伴更新证书,证书就会自动更新。 |