我正在尝试使用从GoDaddy购买的证书在我的负载均衡器上设置SSL。
当试图在控制台上传证书时,我得到一个错误
未能创build负载平衡器:未find密钥的服务器证书:arn:aws:iam :: ************:server-certificate / mycert
添加SSL证书之前,我从来没有遇到过这个错误。 我不知道为什么我甚至在这里使用。
经过一些Googlesearch之后,我能够使用aws cli将我的证书上传到iam (再次,不知道为什么我必须这样做)。
现在当修改监听器时,我可以看到我上传的证书是一个现有的SSL证书。 当我尝试将更改保存到负载平衡器时,我得到相同的错误。 我已经validation证书存在:
$ 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" } ] }
(我已经validation了混淆帐号在这里是一样的错误)
从这里我卡住了。 为什么我无法将我的证书应用于此负载均衡器?
等待了一段时间,然后注销,我能够用我的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
从Web控制台尝试创buildELB时遇到同样的问题。 我试图通过GUI创build一个新的证书上传,并最终失败,同样的错误。 我通过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控制台并select“从AWS Identity and Access Management(IAM)select现有证书”选项,并select刚刚上传的证书对。 之后它会正常工作。
错误是误导。 它确实上传证书。 一旦你收到错误退出,然后回去改变。 select现有的IAM证书并点击下拉菜单 – 您应该在那里看到新的证书。
我有同样的问题,但幸好设法解决它,而不必击中CLI。 ELB通过在证书本身之后的公钥证书字段中粘贴证书链来添加HTTPS侦听器。
该错误仅在证书链被粘贴到控制台中自己的证书链input框(标记为可选)时才会显现。 不太确定为什么这会有所作为,但是它在ELB上创build了HTTPS监听器,并且都很好。
我也打了这个。 尝试五次创build一个新的ELB,每次都失败。 从来没有尝试API的变种,但我设法通过SSL设置证书
这是由于在我的情况下证书名称中的特殊字符:。(点)。 删除证书名称中的所有点后,一切正常
使用AWSnetworking界面时,同样的问题在这里:我上传了一个有效的证书,正确的密钥和完整的链,但得到了上述错误。
我试图将证书上传到另一个(testing)负载平衡器。 上传工作,但监听器状态然后说:“无效证书”。
当我再次打开“select证书”对话框时,没有select证书。 但很明显,证书上传正确,因为我可以在证书列表中select它。
所以,回到我原来的负载均衡器,我试图分配这个上传的证书,现在奇怪的事情:它不在列表中。 我给了它一个新的尝试,上传证书和密钥,但遗漏了证书链。 这工作,所以我知道它必须是链条,这是不正确的(这是一个商品证书)。 我再次从官方网页下载链,上传整个捆绑,它的工作。 现在奇怪的是:当我比较他们两个 – 腐败和新下载的,他们似乎是相同的。 相同的date,相同的序列,相同的。 但不同。
长话短说:它再次下载中间证书的工作。
我有同样的问题,它最终修复了负载均衡器的安全组,并确保端口443被打开。
在创build经典负载均衡器之前,您需要创build一个AMI(生产中的实例的图像)。这将转到创build负载均衡器的设置,然后再次执行该过程,并在此之后提供证书,并且在我的情况下一切正常。
我通过不填写可选的 证书链字段来规避这一点。
我面临同样的问题。 在我的情况下,我上传一个SSL证书时,得到错误“找不到服务器证书的密钥”,但他们最终上传并显示在下拉列表中。 通过CLI上传时,我不会收到任何错误。 当我联系AWS支持时,他们给了我下面这个错误的原因
发生这种情况的原因是最终的一致性。 上传的证书存储在IAM中。 由于IAM拥有庞大的数据库,上传的证书必须通过所有数据库传播。 如果没有足够的时间传播,试图获取此证书的ELB将无法在正在查询的端点中find它。 因此抛出“找不到密钥的服务器证书”。 当它最终被传播时,以后可以将其视为已经上传的证书
我通过去aws控制台中的证书pipe理器并首先在那里上传,从而解决了这个问题。 然后使用负载平衡器向导并select我上传的证书。