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


19

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

尝试在控制台中上载证书时出现错误

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

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

经过一番谷歌搜索后,我能够将证书上传到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
证书始终存储在IAM中,因此听起来您遇到了IAM复制延迟或证书似乎可以正常存储的另一个错误,但那时却不存在……您本来应该工作的。ELB安全组是否向全世界开放使用HTTPS?如果是这样,那么您这里还有第二个异常,我建议您从头开始创建一个新的ELB,看看它的行为是否有所不同。
Michael-sqlbot

Answers:


30

尝试从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)选择现有证书”选项,然后选择刚刚上传的证书对。之后它将正常工作。


1
我有同样的问题。按照共享链接的建议,使用aws客户端解决您的描述问题。使用IAM控制台网络表单粘贴密钥,crt和链对我不起作用。我在开发机上安装了aws-client,使用“ aws configuration”进行设置以添加凭据,然后运行命令aws iam uplad-server-certificate ...
wojjas

GUI给了我问题,CLI没有像往常一样。
Spechal

1
对于更新(现在是2017年),我刚才说了亚马逊的支持,这仍然是一个已知问题。CLI是确保此过程正常运行的唯一方法。-_-
Nicholas Kreidberg '17

2
2017年中,问题仍然存在。
Diogo Melo

2
2018年1月结束-仍然和问题
安德鲁小号

17

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


我也是这样 我得到了错误,并认为这意味着证书没有上传,所以我再次尝试...并得到了另一个错误,指出该证书已经存在。退出“新证书” UI并返回并选择我刚刚上传为“现有”证书的证书就可以了。
coredumperror

1
谢谢!这太混乱了。我不敢相信他们还没有解决过这样的问题。
函数naveed

那是完全正确的
shareef

这种情况在ELB IAM证书上载工作流程中继续发生,但他们在ALB IAM证书上载工作流程中进行了修复。
Josip Rodin

5

我遇到了同样的问题,但幸好设法解决了该问题,而不必点击CLI。我得到了ELB通过粘贴添加HTTPS侦听器证书链中的公钥证书领域,证书本身之后。

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


刚通过SSLmate购买的Comodo DV证书对我有效。一个单独的问题是,我单击了最后一个“提交”按钮后立即出现错误,此错误通过在几秒钟后重新单击该按钮来解决(IAM传播延迟归因于最终一致性?)
RichVel

3

在我的情况下,这是由于证书名称中的特殊字符:。(点)。从证书名称中删除所有点后,一切正常


1
并删除“-”破折号
ysrb,2016年

2

我也刚打过 尝试了五次以创建新的ELB,但每次都失败。从未尝试使用API​​变体,但我设法通过

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

1

我遇到了同样的问题。就我而言,上载SSL证书时出现错误“找不到密钥的服务器证书”,但最终它们被上传并显示在下拉列表中。通过CLI上传时没有出现任何错误。当我联系AWS支持人员时,他们给了我以下错误原因

发生这种情况的原因是最终的一致性。上载的证书存储在IAM中。由于IAM具有庞大的数据库,因此上载的证书必须在所有数据库中传播。如果没有足够的时间传播,则尝试获取此证书的ELB将无法在其查询的端点中找到它。因此抛出“找不到该密钥的服务器证书”。最终传播时,以后可以将其视为已上传的证书


1

我通过转到aws控制台中的证书管理器并首先上传到那里来解决此问题。然后使用负载平衡器向导并选择我上传的证书。


超时,我将SSL上传到AWS,但遇到了其他问题。这次,在证书管理器中进行设置,然后在EC2 Load Balancer中使用它就可以了!!
user566245 '18

0

使用AWS Web界面时,这里也存在同样的问题:我上传了有效的证书,正确的密钥和完整的链,但是遇到了上述错误。

我试图将证书上载到另一个(测试)负载均衡器。上载有效,但是侦听器状态随后显示:“无效证书”。

当我再次打开“选择证书”对话框时,没有选择证书。但是显然证书已正确上传,因为我可以在证书列表中选择它。

因此,回到我原来的负载均衡器,我尝试分配此上载的证书,这很奇怪:它不在列表中。我尝试了一下,然后上传了证书及其密钥,但是遗漏了证书链。这行得通,所以我知道那一定是链条,这是不正确的(这是commodo证书)。我再次从官方页面下载了链条,上传了整个捆绑包,它起作用了。现在发生的事情很奇怪:当我比较这两个文件时(损坏的文件和新下载的文件),它们看起来是一样的。日期相同,序列相同,相同。但是不一样。

长话短说:它可以通过再次下载中间证书来工作。


0

我遇到了同样的问题,最终解决的问题是进入负载均衡器的安全组,并确保打开了端口443。


0

在创建Classic负载均衡器之前,您需要创建一个AMI(生产中的实例映像),然后转到负载均衡器的创建设置,然后再次执行该过程,此后,提供的证书和我所遇到的一切都很好。



0

如果我直接上传证书,我也会遇到同样的问题。

如果我使用证书管理器(AWS Certificate Manager – ACM),则可以上传证书。之后,我只需在下拉列表中选择证书即可。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.