无法选择自定义 SSL 证书(存储在 AWS IAM 中)

Posted

技术标签:

【中文标题】无法选择自定义 SSL 证书(存储在 AWS IAM 中)【英文标题】:Unable to select Custom SSL Certificate (stored in AWS IAM) 【发布时间】:2015-04-20 23:14:04 【问题描述】:

我将在 CloudFront 上创建一个新发行版。我已经使用 AWS CLI 在 AWS IAM 上传了我的 SSL 证书。该证书出现在新分发页面的自定义 SSL 证书下拉列表中,但它已禁用

谁能告诉我为什么会这样?如何为此分发选择我的自定义 SSL 证书?

【问题讨论】:

您是否使用 root 帐户上传了证书? 【参考方案1】:

AWS 花了一整天的时间将新证书传播到其所有节点。第二天,当我登录到我的 AWS 控制台时,证书出现在下拉列表中并且也已启用,我可以成功配置分发。

另外,请务必在提出证书申请时选择us-east-1(弗吉尼亚北部);它是目前唯一支持它的区域(即使您的存储桶/资产在另一个区域)

【讨论】:

已经等了3天了,很遗憾 在弗吉尼亚北部重做证书解决了我的问题。奇怪的是,证书实际上在不同地区有不同的问题状态......哈哈 在创建新的 CloudFront 分配时,Amazon 明确指出“您可以使用存储在美国东部(弗吉尼亚北部)区域的 AWS Certificate Manager (ACM) 中的证书,也可以使用存储的证书在 IAM 中。” 根据docs.aws.amazon.com/acm/latest/userguide/acm-services.html 和aws.amazon.com/certificate-manager/faqs 的说法,“要将 ACM 证书用于 CloudFront,您必须在美国东部(弗吉尼亚北部)区域申请或导入该证书”。 我使用 ACM 中的 N.Virginia 区域和 DNS 验证创建了一个证书。它在 10 分钟内工作。【参考方案2】:

仅在美国东部的 AWS Certificate Manager (ACM) 中注册的证书 (弗吉尼亚北部)区域将启用在 CloudFront 中使用

【讨论】:

很高兴它被记录在某处:D 这些天他们在 cloudFront 的证书部分上面给出了一个小文本。我们往往会错过这些信息。【参考方案3】:

如其他 cmets 所述,将证书导入 IAM 或通过 ACM 在 us-east-1 中创建。

等待验证完成,即不是橙色。

加载云端分发设置编辑页面。 如果自定义 SSL 选项显示为灰色,请退出控制台并重新登录。完成此步骤后,灰色选项对我来说是活跃的。我想它以某种方式被缓存并且注销登录刷新它。

【讨论】:

什么?!现在是 2020 年,这实际上仍然是解决办法。 是的,我浪费了一个小时来弄清楚你需要注销并登录...... 这是最好的答案。在注册我的 ACM 证书后,注销/登录最终为我解决了这个问题。 成功了 :-) 感谢您的提示为我节省了很多时间【参考方案4】:

只需等待几分钟,然后重新加载 distribution settings 页面即可查看自定义 SSL 选项已启用

我遇到了同样的问题,没有使用我的AWS root 帐户,并且IAM 路径正确设置为/cloudfront/

【讨论】:

【参考方案5】:

登录到控制台并使用此 URL:https://console.aws.amazon.com/acm/home?region=us-east-1#/wizard/,它将起作用。关键是地区。

【讨论】:

是的,这对我也很有效。 (然后我回去简单地删除了我在 region=us-west-2 下制作的证书)【参考方案6】:

我遇到了类似的问题,将证书导入 AWS Certificate Manager 对我来说更顺利。

如果您将 AWS Certificate Manager 与 S3 存储桶一起使用,请确保将证书导入美国东部(弗吉尼亚北部)区域。截至今天,这是 ACM 中唯一支持 S3 的区域。见https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html

【讨论】:

准确!这是这个问题的解决方案 - 谢谢 Ryan 这就是解决方案!更多相关链接:docs.aws.amazon.com/acm/latest/userguide/acm-regions.html:要将 ACM 证书用于 Amazon CloudFront,您必须在美国东部(弗吉尼亚北部)区域申请或导入证书。此区域中与 CloudFront 分配关联的 ACM 证书将分发到为该分配配置的所有地理位置。【参考方案7】:

证书颁发后返回云端首页并刷新页面。它对我有用

【讨论】:

遇到尴尬的情况,谁知道这是解决方案:D【参考方案8】:

现在没有显示的原因可能是你设置的iam路径不是/cloudfront/[1]。您可以使用与上传证书相同的 cli 更改 / 的默认路径,或者您可以再次上传证书。如果这不能解决问题,请告诉我。

    http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecureConnections.html#CNAMEsAndHTTPS

【讨论】:

【参考方案9】:

确保您没有使用 AWS 根账户上传证书。如果您使用 root 帐户,证书将可见,但您将无法选择它。

相反,创建一个具有足够权限的新 IAM 用户(我使用了一个分配了管理策略的账户)并使用这些凭证上传证书。然后证书应该可用。

【讨论】:

这对我有用,我以 root 用户身份创建了证书,但在编辑分发版时自定义 SSL 设置被禁用,即使我可以在下拉菜单中看到证书作为选项。创建管理员用户并以该帐户登录后,该选项不再被禁用。【参考方案10】:

如果您在另一个区域(不是 us-east-1)申请证书,请将您的区域设置为 us-east-1 并再次申请证书。我只是在 ap-northeast-2 中请求相同的域名,它会立即生效。

【讨论】:

【参考方案11】:

前端好像有错误。

试试这个,它对我有用:

使用浏览器的检查工具进入 HTML。 从单选按钮和当前灰显的文本框中删除“禁用”属性。 然后插入您的证书的 ARN。 填写您的表单。

【讨论】:

【参考方案12】:

使用这个:


"Effect": "Allow",
"Action": [
    "iam:DeleteServerCertificate",
    "iam:UploadServerCertificate",
    "iam:ListServerCertificates",
    "iam:GetServerCertificate"
],
    "Resource": "*"

【讨论】:

嗨@d.balu,您能否为您的回答提供更多解释?【参考方案13】:

我看到已经有很多好的答案,其中任何一个都可能是您的Custon SSL Certificate 部分被禁用的原因。我想我刚刚找到了另一个,这就是我的情况:

对于包括 CloudFront 在内的许多“集成服务”,仅支持少数算法和密钥大小。我试图使用我的 RSA 4096 位证书和足够长度的密钥。

截至目前,对于“集成服务”而言,AWS 仅接受 1024 或 2048 位的密钥长度。

此处提及:https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-prerequisites.html

【讨论】:

【参考方案14】:

在我的情况下,它不是在 N.Virginia 地区请求 ACM,在 ACM 状态变为绿色后,我需要注销并登录以启用按钮。

【讨论】:

【参考方案15】:

我遇到了同样的问题。所以我读了this

但对我来说,它仍然被禁用,因为它可能需要一整天的时间。

所以,我检查了 html 并删除了 disabled 属性并选择了证书。

【讨论】:

【参考方案16】:

如果证书未显示在下拉列表中,您可以复制并粘贴证书的完整 ARN。通过选择您要使用的证书,可以在证书管理器中找到 ARN。

【讨论】:

【参考方案17】:

AWS 根账户无法在 CloudFront 中选择自定义证书。

请使用以下策略创建新的 IAM 用户并使用该用户创建 CloudFront 分配,您可以选择自定义 SSL 证书。


  "Version": "2012-10-17",
  "Statement": [
    "Effect": "Allow",
    "Action": ["*"],
    "Resource": ["*"]
  ]

【讨论】:

以上是关于无法选择自定义 SSL 证书(存储在 AWS IAM 中)的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu 上托管的 LAMP 应用程序的 AWS SSL 证书

没有自定义域的 AWS 上的 SSL 应用程序负载均衡器

如何在aws中为cname设置ssl证书?

aws控制台如何删除过期的ssl证书

无法在 AWS EC2 (Ubuntu) apache 系统上 SSL Godaddy 验证证书

自己做的ssl证书和ca证书有啥区别