

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 解决活动目录 AWS 私有 CA 连接器的问题
<a name="troubleshoot-connector-ad"></a>

使用此处的信息来帮助您诊断和修复 Conn AWS 私有证书颁发机构 ector 的 AD 问题。

**Topics**
+ [对 AD 错误代码的连接器进行故障排除](c4adTroubleshootingError.md)
+ [排除 AD 连接器创建失败的连接器故障](c4adTroubleshootingConnectorCreationFailure.md)
+ [对 AD SPN 创建失败的连接器进行故障排除](c4adTroubleshootingSpnFailure.md)
+ [针对 AD 模板更新问题进行连接器故障排除](c4adTroubleshootingUpdatedTemplate.md)

# 对 AD 错误代码的连接器进行故障排除
<a name="c4adTroubleshootingError"></a>

AD 连接器出于多种原因发送错误消息。有关每个错误的信息以及解决这些错误的建议，请参阅下表。您可以通过订阅 Amazon S EventBridge cheduler 事件（事件来源：`aws.pca-connector-ad`）或在 Windows 中使用手动注册来收到这些错误。


| 错误代码 | 根本原因 | 修复 | 
| --- | --- | --- | 
|  0x8FFFA000  |  Kerberos 身份验证失败。  |  确保您的目录可以访问，并且客户端是用户或计算机。如果您使用的是自动注册，请修复您的 AWS 资源服务主体。如果您使用 Active Directory UI 获取证书，请运行 `gpupdate /force`。  | 
|  0x8FFFA001  |  SOAP 消息必须包含操作标头。  |  添加操作标头。  | 
|  0x8FFFA002  |  连接器无法访问其所连接的私有 CA。  |  通过创建 AWS Resource Access Manager（RAM）在私有 CA 与 Connector for AD 服务之间共享，从而与连接器共享您的私有 CA。  | 
|  0x8FFFA003  |  此连接器的私有 CA 未激活。  |  将私有 CA 转为活动状态。如果您的私有 CA 处于待处理证书状态，则请安装 CA 证书。  | 
|  0x8FFFA004  |  此连接器的私有 CA 不存在。  |  如果您的证书颁发机构处于“已删除”状态，则请将其转为“活动”状态。如果您的私有 CA 被永久删除，则请使用其他 CA 创建一个新的连接器。  | 
|  0x8FFFA005  |  模板为证书使用者或使用者备用名称指定了 `directoryGuid` 属性，但在请求者的 AD 对象中找不到该属性。  |  Active Directory 没有为您的目录生成 `directoryGuid`。在 Active Directory 中进行故障排除。  | 
|  0x8FFFA006  |  模板为证书使用者或使用者备用名称指定了 `dnsHostName` 属性，但在请求者的 AD 对象中找不到该属性。  |  将 `dnsHostName` 属性添加到您的 AD 对象。  | 
|  0x8FFFA007  |  模板指定了要包含在证书使用者或使用者备用名称中的电子邮件属性，但在请求者的 AD 对象中找不到该属性。  |  将电子邮件属性添加到您的 AD 对象  | 
|  0x8FFFA008  |  SOAP 消息必须有 `http://schemas.microsoft.com/windows/pki/2009/01/enrollmentpolicy/IPolicy/GetPolicies` 或 `http://schemas.microsoft.com/windows/pki/2009/01/enrollment/RST/wstep` 的操作标头。  |  更新操作标头以使用其中一个指定值。  | 
|  0x8FFFA009  |   BinarySecurityToken 必须进行编码。`http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd#base64binary`  |  更新二进制安全令牌类型。  | 
|  0x8FFFA00A  |   BinarySecurityToken 无效。  |  检查 CSR 是否正确生成。  | 
|  0x8FFFA00B  |  的值类型 BinarySecurityToken 必须为`http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd#PKCS7`或`http://schemas.microsoft.com/windows/pki/2009/01/enrollment#PKCS10`。  |  将二进制安全令牌值类型更新为有效值。  | 
|  0x8FFFA00C  |   BinarySecurityToken 包含的内容管理系统无效。  |  Base64 有效，但加密消息语法（CMS）无效。检查 CMS 语法。  | 
|  0x8FFFA00D  |   BinarySecurityToken 包含无效的 CSR。  |  检查 CSR 是否正确生成。  | 
|  0x8FFFA00E  |  私有 CA 无法使用特定模板颁发证书。  |  查看来自的验证例外 AWS 私有 CA。您可以在 Amazon EventBridge 或 Amazon 上查看验证异常 AWS CloudTrail。  | 
|  0x8FFFA00F  |  SOAP 消息的请求类型必须为 `http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue`。  |  将请求类型设置为 `http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue`。  | 
|  0x8FFFA010  |  SOAP 消息必须有连接器 `CertificateEnrollmentPolicyServerEndpoint` 字段或 XCEP 响应中的 URI 字段的 to 标头。  |  将请求安全令牌的标头设置为 `CertificateEnrollmentPolicyServerEndpoint` 字段或 XCEP 响应中的 URI 字段。  | 
|  0x8FFFA011  |  SOAP 消息必须只有一个操作标头。  |  查看请求安全令牌的 SOAP 消息标头并正确设置标头。  | 
|  0x8FFFA012  |  SOAP 消息必须只有一个 `messageId` 标头。  |  查看请求安全令牌的 SOAP 消息标头并正确设置标头。  | 
|  0x8FFFA013  |  SOAP 消息必须只有一个 to 标头。  |  查看请求安全令牌的 SOAP 消息标头并正确设置标头。  | 
|  0x8FFFA014  |  请求者无权访问所请求的模板。  |  通过创建访问控制条目，允许请求者的组使用请求的模板进行注册。  | 
|  0x8FFFA015  |  `CertificateTemplateInformation`或`CertificateTemplateName`扩展名必须存在于中 BinarySecurityToken。  |  将安全扩展添加到您的 CSR。  | 
|  0x8FFFA016  |  找不到给定连接器请求的模板。  |  模板是每个连接器的子资源。使用 `createTemplate` 为连接器创建模板。  | 
|  0x8FFFA017  |  由于请求限制而导致请求被拒绝。  |  降低请求速率。  | 
|  0x8FFFA018  |  SOAP 消息必须包含 `to` 标头。  |  查看 SOAP 消息的标头。  | 
|  0x8FFFA019  |  由于标头无法识别，无法处理 SOAP 消息。  |  查看 SOAP 消息的标头。  | 
|  0x8FFFA01A  |  模板指定了要包含在证书使用者或使用者备用名称中的 UPN 属性，但在请求者的 AD 对象中找不到该属性。  |  将 UPN 添加到 Active Directory 对象。  | 

# 排除 AD 连接器创建失败的连接器故障
<a name="c4adTroubleshootingConnectorCreationFailure"></a>

创建 AD 连接器的连接器可能由于各种原因而失败。连接器创建失败时，您将在 API 响应中收到失败原因。如果您使用的是控制台，则失败原因将显示在连接器**详细信息**页面的 “连接器**详细信息” 容器中 “其他状态****详细信息**” 字段下。下表描述了失败原因和建议的解决步骤。


| 失败状态 | 描述 | 修复 | 
| --- | --- | --- | 
| CA\$1CERTIFICATE\$1REGISTRATION\$1FAILED | AD 连接器无法将 CA 证书导入您的目录。 |  查看 “[先决条件](connector-for-ad-getting-started-prerequisites.md)” 页面，并检查您的服务帐号是否具有正确的权限。将正确的权限委派给您的服务帐号后，删除失败的连接器并创建一个新的连接器。有关委派权限的信息，请参阅《*AWS Directory Service 管理指南》*中的[向服务帐号委派](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ad_connector_getting_started.html#connect_delegate_privileges)权限。  | 
| DIRECTORY\$1ACCESS\$1DENIED | AD 连接器无法访问您的目录。 |  您必须授予 Connector for AD 访问您的目录的权限。请查看该[步骤 4：创建 IAM 策略](connector-for-ad-getting-started-prerequisites.md#prereq-iam)部分，确保与您的 AWS 账户关联的 IAM 策略允许您访问和描述目录。向您的 AWS 角色授予正确的权限后，删除失败的连接器并创建一个新的连接器。 如果将 Connector for A AWS Directory Service D 与 AD 连接器一起使用，请确保 AD Connector 服务帐户的密码未过期且有效。有关 AD Connector 服务帐户的信息，请参阅《[AD 连接器*管理指南》中的 AD Connec* tor 入门](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ad_connector_getting_started.html)。  | 
| INTERNAL\$1FAILURE | AD 连接器出现内部故障。 |  请稍后重试。删除失败的连接器并创建一个新的连接器。  | 
| INSUFFICIENT\$1FREE\$1ADDRESSES |  VPC 子网必须至少有一个可用的私有 IP 地址。 |   确保子网中有可用的私有 IP 地址。删除失败的连接器并创建一个新的连接器。  | 
| INVALID\$1SUBNET\$1IP\$1PROTOCOL | AD 连接器无法在您的 VPC 上创建终端节点，因为与您的目录关联的子网不支持指定的 IP 地址类型。 |  确保托管您的目录的 VPC 和子网支持您选择的 IP 地址类型。有关更多信息，请参阅 [IP 地址类型](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html#aws-service-ip-address-type)。删除失败的连接器，然后使用支持的 IP 地址类型创建一个新的连接器。  | 
| PRIVATECA\$1ACCESS\$1DENIED | AD 连接器无法访问您的私有 CA。 |  查看 “[先决条件](connector-for-ad-getting-started-prerequisites.md)” 页面，并检查您是否具有创建连接器的权限。有关信息，请参阅[步骤 4：创建 IAM 策略](connector-for-ad-getting-started-prerequisites.md#prereq-iam)。 如果您通过 AWS CLI 或 API 创建连接器，请查看 “[先决条件](connector-for-ad-getting-started-prerequisites.md)” 页面，并检查您是否已使用与 Connector for AD 共享私有 CA AWS Resource Access Manager。 检查并修复 IAM 权限和 AWS RAM 资源共享后，删除失败的连接器并创建一个新的连接器。  | 
| PRIVATECA\$1RESOURCE\$1NOT\$1FOUND | AD 连接器找不到指定的私有 CA。 |  请确保指定正确的私有 CA A [mazon 资源名称 (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)，然后删除失败的连接器，并使用您想要的私有 CA ARN 创建一个新的连接器。  | 
| SECURITY\$1GROUP\$1NOT\$1IN\$1VPC | 安全组不在托管您的目录的 VPC 中。 |  使用托管目录的 VPC 中的安全组。有关更多信息，请参阅 [步骤 7：配置安全组](connector-for-ad-getting-started-prerequisites.md#prereq-security-groups)。删除失败的连接器，然后使用位于 VPC 中的安全组创建一个新的连接器。  | 
| VPC\$1ACCESS\$1DENIED | AD 连接器无法访问托管您的目录的 Amazon VPC。 |  检查您的 IAM 权限。删除失败的连接器并创建一个新的连接器。有关包含访问权限的 IAM 策略示例，请参阅 [步骤 4：创建 IAM 策略](connector-for-ad-getting-started-prerequisites.md#prereq-iam)  | 
| VPC\$1ENDPOINT\$1LIMIT\$1EXCEEDED | AD 连接器无法在您的 Amazon VPC 中创建终端节点。您已达到可以为您的账户创建 VPC 终端节点的上限。 |  删除 Amazon VPC 终端节点，或请求提高限制。完成两个步骤之一后，删除失败的连接器并创建一个新的连接器。有关配额的信息，请参阅 [Amazon Virtual Private Cloud 服务配额](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html)。  | 
| VPC\$1RESOURCE\$1NOT\$1FOUND | AD 连接器找不到指定的 VPC。 |  请确保您指定的 VPC 正确且该 VPC 存在。然后删除失败的连接器，并使用正确的 VPC ID 创建一个新的连接器。  | 

# 对 AD SPN 创建失败的连接器进行故障排除
<a name="c4adTroubleshootingSpnFailure"></a>

服务主体名称 (SPN) 创建可能由于各种原因而失败。当 SPN 创建失败时，您将在 API 响应中收到失败原因。如果您使用的是控制台，则失败原因将显示在连接器详细信息页面的**服务主体名称 (SPN)** 容器内**其他状态详细信息**字段下。下表描述了失败原因和建议的解决步骤。


| 失败状态 | 描述 | 修复 | 
| --- | --- | --- | 
| DIRECTORY\$1ACCESS\$1DENIED | AD 连接器无法访问您的目录。 |  授予连接器让 AD 访问您的目录的权限。有关包含授予目录访问权限的权限的 IAM 策略示例，请参阅[步骤 4：创建 IAM 策略](connector-for-ad-getting-started-prerequisites.md#prereq-iam)。  | 
| DIRECTORY\$1NOT\$1REACHABLE | AD 连接器无法访问您的目录。 |  检查与您的目录 AWS 之间的网络，然后尝试再次创建 SPN。  | 
| DIRECTORY\$1RESOURCE\$1NOT\$1FOUND | AD 连接器找不到指定的目录。 |  请确保指定正确的目录 ID，然后删除失败的连接器，并使用预期的目录 ID 创建一个新的连接器。  | 
| INTERNAL\$1FAILURE | AD 连接器出现内部故障。 |  请稍后重试。  | 
| SPN\$1EXISTS\$1ON\$1DIFFERENT\$1AD\$1OBJECT | 服务主体名称 (SPN) 存在于另一个 Active Directory 对象上。 |  从 Active Directory 对象中删除 SPN，然后尝试再次创建 SPN。  | 
| SPN\$1LIMIT\$1EXCEEDED | AD 连接器无法创建 SPN，因为您已达到 SPNs 每个目录的限制。 SPNs 每个目录的最大数量为 10。 |   SPNs 从您的账户中删除一个或多个，然后尝试再次创建 SPN。  | 

# 针对 AD 模板更新问题进行连接器故障排除
<a name="c4adTroubleshootingUpdatedTemplate"></a>

如果您对模板或组访问控制条目进行了更改，但看不到更改，则可能是由于策略缓存所致。 AWS 私有 CA 当您的客户端刷新策略缓存（每八小时刷新一次）时，将模板应用于您的策略。当您的客户端刷新缓存时，它会向连接器查询可用模板。如果是**自动注册刷新，则客户端会颁发符合以下任一或两个条件的证书：
+ 证书在续订期内。
+ 证书不存在于客户端设备上。

要进行*手动刷新*，客户端将查询连接器，并且您必须将模板设置为发布。

如果您正在调试，则可以手动清除策略缓存以立即查看模板的更改。为此，请在您的客户端上运行以下 Powershell 命令。

```
certutil -f -user -policyserver * -policycache delete
```