

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

# 排查其他问题
<a name="misc-problems"></a>

本部分提供了与颁发或验证 ACM 证书无关的问题的指导。

**Topics**
+ [证书颁发机构授权 (CAA) 问题](troubleshooting-caa.md)
+ [证书导入问题](troubleshoot-import.md)
+ [证书固定问题](troubleshooting-pinning.md)
+ [API Gateway 问题](troubleshoot-apigateway.md)
+ [工作证书意外失败时该怎么办](unexpected-failure.md)
+ [ACM 服务关联角色 (SLR) 问题](slr-problems.md)

# 证书颁发机构授权 (CAA) 问题
<a name="troubleshooting-caa"></a>

您可以使用 CAA DNS 记录指定 Amazon 证书颁发机构 (CA) 可以为您的域或子域颁发 ACM 证书。如果您在证书颁发期间收到错误消息，显示 **One or more domain names have failed validation due to a Certification Authority Authentication (CAA) error** [由于证书颁发机构认证 (CAA) 错误，一个或多个域名未能通过验证]，请检查您的 CAA DNS 记录。如果您在成功验证 ACM 证书请求后收到此错误，则必须更新您的 CAA 记录并再次请求证书。CAA 记录中的 **value**（值）字段必须包含以下域名中的一个：
+ amazon.com
+ amazontrust.com
+ awstrust.com
+ amazonaws.com

有关创建 CAA 记录的更多信息，请参阅 [（可选）配置 CAA 记录](setup.md#setup-caa)。

**注意**  
如果您不希望启用 CAA 检查，则可以选择不为您的域配置 CAA 记录。

# 证书导入问题
<a name="troubleshoot-import"></a>

您可以将第三方证书导入 ACM 并将其与[集成服务](https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html)关联。如果遇到问题，请查看[先决条件](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-prerequisites.html)和[证书格式](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-format.html)主题。特别要注意以下几点：
+ 您只能导入 X.509 版本 3 证书。 SSL/TLS 
+ 证书可以是自签名的，也可以由证书颁发机构 (CA) 签名。
+ 如果您的证书由 CA 签名，则必须包含中间证书链，该证书链可提供到达证书颁发机构根目录的路径。
+ 如果证书为自签名证书，则必须以明文形式包含私有密钥。
+ 链中的每个证书都必须直接认证前一个证书。
+ 请勿在中间证书链中包含最终实体证书。
+ 证书、证书链和私有密钥（如有）必须采用 PEM 编码。通常，PEM 编码由 Base64 编码的 ASCII 文本块组成，这些文本块以明文页眉和页脚行开头和结尾。在复制或上载 PEM 文件时，不得添加行或空格或对该文件进行任何其他更改。您可以使用 [OpenSSL 验证实用程序](https://www.openssl.org/docs/manmaster/man1/openssl-verify.html)验证证书链。
+ 不得加密您的私有密钥（如有）。（提示：如果它有密码短语，则会加密。）
+ 与 ACM [集成](https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html)的服务必须使用 ACM 支持的算法和密钥大小。请参阅《 AWS Certificate Manager 用户指南》和每项服务的文档，确保您的证书能够正常使用。
+ 集成服务对证书的支持可能因证书导入 IAM 还是 ACM 而有所不同。
+ 导入时证书必须有效。
+ 所有证书的详细信息都显示在控制台中。但是，默认情况下，如果您在未指定`keyTypes`筛选条件的情况下调用 [ListCertificates](https://docs.aws.amazon.com/acm/latest/APIReference/API_ListCertificates.html)API 或 [list-cer](https://docs.aws.amazon.com/cli/latest/reference/acm/list-certificates.html) tificates AWS CLI 命令，则只会`RSA_1024`显示或`RSA_2048`证书。

# 证书固定问题
<a name="troubleshooting-pinning"></a>

为了续订证书，ACM 会生成新的公有-私有密钥对。如果您的应用程序使用[证书固定](acm-bestpractices.md#best-practices-pinning)（有时称为 SSL 固定）来固定 ACM 证书，则在 AWS 续订证书后，应用程序可能无法连接到您的域。为此，我们建议您不要固定 ACM 证书。如果您的应用程序必须固定证书，您可以执行以下操作：
+ [将您自己的证书导入到 ACM](import-certificate.md)，然后将您的应用程序固定到导入的证书。ACM 不提供针对导入的证书的托管续订。
+ 如果您使用的是公有证书，则将您的应用程序固定到所有可用的 [Amazon 根证书](https://www.amazontrust.com/repository/)。如果您使用的是私有证书，则将您的应用程序固定到 CA 的根证书。

# API Gateway 问题
<a name="troubleshoot-apigateway"></a>

当您部署*边缘优化*的 API 端点时，API Gateway 会为您设置 CloudFront 分配。该 CloudFront 分配归 API Gateway 所有，而不是归您的账户所有。该分配绑定到部署 API 时所使用的 ACM 证书。要删除绑定并允许 ACM 删除您的证书，您必须删除与该证书关联的 API Gateway 自定义域。

当您部署*区域* API 终端节点时，API Gateway 将代表您创建一个 Application Load Balancer (ALB)。该负载均衡器由 API Gateway 所有，对您不可见。该 ALB 绑定到部署 API 时所使用的 ACM 证书。要删除绑定并允许 ACM 删除您的证书，您必须删除与该证书关联的 API Gateway 自定义域。

# 工作证书意外失败时该怎么办
<a name="unexpected-failure"></a>

如果您已成功将 ACM 证书与集成服务关联，但证书停止工作，并且集成服务开始返回错误，则原因可能是服务使用 ACM 证书所需的权限发生了更改。

例如，Elastic Load Balancing (ELB) 需要解密权限 AWS KMS key ，然后才能解密证书的私钥。此权限由基于资源的策略授予，当您将证书与 ELB 关联时 ACM 将应用该策略。如果 ELB 失去对该权限的授予，则将在下次尝试解密证书密钥时失败。

要调查问题，请使用 AWS KMS 控制台查看您的授权状态，网址为[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms)。执行下列操作之一：
+ 如果您认为已撤销授予集成服务的权限，请访问集成服务的控制台，取消证书与服务的关联，然后重新关联它。这将重新应用基于资源的策略，并设置新的授权。
+ 如果您认为授予 ACM 的权限已被撤销，请联系 支持 h https://console.aws.amazon.com/support/ ome\$1/。

# ACM 服务关联角色 (SLR) 问题
<a name="slr-problems"></a>

当您颁发由私有 CA 签名并由其他账户与您共享的证书时，ACM 会在首次使用时尝试设置服务相关角色 (SLR)，以委托人身份与基于 AWS 私有 CA [资源的](https://docs.aws.amazon.com/privateca/latest/userguide/pca-resource-sharing.html#pca-rbp)访问策略进行交互。如果您从共享 CA 颁发私有证书，而不存在 SLR，ACM 将无法为您自动续订该证书。

ACM 可能会提示您，它无法确定您的账户中是否存在 SLR。如果所需的 `iam:GetRole` 权限已被授予您账户的 ACM SLR，则在创建 SLR 后不会再发出提示。如果提示再次发生，那么您或您的账户管理员可能需要授予 `iam:GetRole` 访问 ACM 的权限，或者将您的账户与 ACM 托管策略 `AWSCertificateManagerFullAccess` 关联。

有关更多信息，请参阅《IAM 用户指南》**中的[服务关联角色权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。