无法添加 SSL 侦听器,未找到密钥的服务器证书

无法添加 SSL 侦听器,未找到密钥的服务器证书

我正在尝试使用从 GoDaddy 购买的证书在我的负载均衡器上设置 SSL。

当我尝试在控制台中上传证书时出现错误

无法创建负载均衡器:未找到密钥的服务器证书:arn:aws:iam::************:server-certificate / mycert

我以前添加 SSL 证书时从未遇到过此错误。我不确定为什么iam在这里使用它。

经过一些 Google 搜索后,我能够iam使用 aws cli 上传我的证书(再次,不确定为什么我必须这样做)。

现在,在修改侦听器时,我可以将我上传的证书视为现有的 SSL 证书。但是,当我尝试将我的更改保存到负载均衡器时,我收到相同的错误。我已验证证书存在:

$ aws iam list-server-certificates
{
    "ServerCertificateMetadataList": [
        {
            "ServerCertificateId": "*********************", 
            "ServerCertificateName": "mycert", 
            "Expiration": "2018-11-19T18:47:38Z", 
            "Path": "/", 
            "Arn": "arn:aws:iam::************:server-certificate/mycert", 
            "UploadDate": "2015-11-19T19:23:32Z"
        }
    ]
}

(我已验证此处混淆的账号与错误中的账号相同)

从这里开始我就卡住了。为什么我无法将证书应用于此负载均衡器?


编辑于 2015 年 11 月 19 日星期四 11:47:18 PST

等待一段时间并注销并重新登录后,我能够使用 SSL 证书更新侦听器。但是,它似乎无法正常工作。尝试加载我的域时,HTTPS请求超时。似乎无法加载证书

$ echo | openssl s_client -connect www.example.com:443 2>/dev/null | openssl x509 -noout -subject
unable to load certificate
69457:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-52.30.1/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE

答案1

尝试从 Web 控制台创建 ELB 时,我遇到了同样的问题。我尝试通过 GUI 在那里创建并上传新证书,但最终失败并出现同样的错误。我通过 aws cli 单独上传证书文件解决了这个问题。此文档对此进行了解释 -http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ssl-server-cert.html#upload-cert

像这样上传证书、私钥和证书链

aws iam upload-server-certificate --server-certificate-name my-server-cert \
  --certificate-body file://my-certificate.pem --private-key file://my-private-key.pem \
  --certificate-chain file://my-certificate-chain.pem

然后转到 Web 控制台并选择选项“从 AWS Identity and Access Management (IAM) 中选择现有证书”,然后选择刚刚上传的证书对。之后它就可以正常工作了。

答案2

该错误具有误导性。它确实上传了证书。收到该错误后退出,然后返回进行更改。选择现有 IAM 证书并单击下拉菜单 - 您应该在那里看到新证书。

答案3

我遇到了同样的问题,但幸运的是,我设法解决了它,而无需使用 CLI。我让 ELB 添加 HTTPS 侦听器,方法是粘贴证书链在里面公钥证书字段,位于证书本身之后。

仅当将证书链粘贴到其自己的证书链中时,才会出现错误证书链控制台中的输入框(标记为可选)。不太确定为什么这有所不同,但它在 ELB 上创建了 HTTPS 侦听器,一切都很好。

答案4

我也遇到了这个问题。尝试了五次创建新的 ELB,但每次都失败了。从未尝试过 API 变体,但我设法通过以下方式设置了 SSL 证书

  1. 首先创建 ELB;然后
  2. 通过从 HTTP 更改为 HTTPS 来修改监听器并上传我的证书+密钥+中间件。

相关内容