You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Ruby on Rails部署AWS EB新环境时遇负载均衡器更新失败:证书未找到

解决Elastic Beanstalk部署时「Server Certificate not found」错误

嘿,我之前碰到过几乎一模一样的问题,你的情况应该是新创建的Elastic Beanstalk环境找不到你配置HTTPS所需的SSL证书——毕竟示例应用默认没启用HTTPS,所以不会触发这个错误。下面是几个针对性的解决办法,你可以一步步排查:

1. 先确认IAM用户有访问证书的权限

你的IAM用户得有读取AWS证书的权限才行,不管证书存在ACM(AWS Certificate Manager)还是IAM证书存储里。去IAM控制台检查用户的权限策略,确保包含这些权限:

  • acm:DescribeCertificate、acm:ListCertificates(如果用的是ACM证书)
  • iam:GetServerCertificate、iam:ListServerCertificates(如果证书存在IAM里)

可以给用户附加一段类似这样的策略片段:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "acm:DescribeCertificate",
        "acm:ListCertificates",
        "iam:GetServerCertificate",
        "iam:ListServerCertificates"
      ],
      "Resource": "*"
    }
  ]
}

2. 确保部署配置里的证书ARN完全正确

检查你的.elasticbeanstalk/config.yml或者环境变量,确认SSL证书的ARN没写错。你可以去ACM控制台或者IAM证书页面复制正确的ARN:

  • ACM证书格式:arn:aws:acm:us-east-1:123456789012:certificate/abc123-def456-ghi789-jkl012-mno345
  • IAM证书格式:arn:aws:iam::123456789012:server-certificate/MyCertificateName

如果用EB CLI部署,直接用命令设置:

eb setenv SSL_CERTIFICATE_ARN=你的证书ARN

或者在config.yml里添加配置项:

option_settings:
  aws:elb:listener:443:
    SSLCertificateId: 你的证书ARN

3. 证书区域要和EB环境区域匹配

ACM证书是区域限定的(除了CloudFront用的全球证书),如果你的新EB环境部署在us-west-2,那证书必须也在us-west-2的ACM里,否则EB肯定找不到。要是之前的development环境用的是另一个区域的证书,要么把证书复制到目标区域,要么把EB环境改到证书所在的区域。

4. 手动检查负载均衡器的HTTPS配置

有时候手动创建环境时,负载均衡器的HTTPS监听没正确关联证书。去AWS控制台找到你的EB环境,进入「配置」→「负载均衡器」,检查HTTPS监听的证书选择是否正确,手动指定正确的证书ARN后再重新部署试试。

5. 重置EB CLI配置(如果配置有缓存)

要是之前的EB CLI配置缓存了旧信息,试试删除.elasticbeanstalk目录后重新初始化:

rm -rf .elasticbeanstalk
eb init -i

初始化的时候记得选对区域、应用,还有HTTPS相关的配置选项。

要是这些步骤都试过还不行,去EB的部署日志里看看详细错误信息,里面会明确告诉你是证书不存在、权限不够还是区域不匹配的问题,更容易定位。

内容的提问来源于stack exchange,提问作者Cruz Nunez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:26:10