2012-06-01 44 views
26

我一直在测试和试验一下,以了解如何将SSL证书上传到AWS的Elastic Load Balancer(找出不同密钥和证书编码的问题)。从弹性负载均衡器中删除上传的证书

因此,我在那里生成了很多测试证书,这些证书都是由错误信息,缺少证书链或仅仅是假数据生成的。

据我所见,没有办法删除这些证书,甚至更新/替换缺少某些信息的证书。 AWS对“更新证书”(http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide/US_UpdatingLoadBalancerSSL.html)的指示实际上只是向您显示如何更改负载均衡器侦听器,以使用已在其中的或您也可以上传的不同证书! (这正是我最初以那么多证书结束的原因)。

有人可以告诉我,我错了,有一种方法可以删除它们吗? :D(最好也是这样做)

+0

这是这里的主题。可能属于http://superuser.com/ –

+1

虽然我可以看到为什么会这样(不直接是编程问题),但我认为很多使用AWS的人更有可能在此寻找它(或者能够在这里回答)。虽然我可能在这个假设上是错误的。是否有可能横向移动? –

+0

接受的答案不再是正确的答案。这是这类问题的问题。我从来没有删除未使用的证书的问题。如果他们没有被分配到现有的ELB,他们只是删除罚款。也许有一段时间,它不是很可靠,但到2016年它完美的工作。 – Matt

回答

6

这是不可能的。您必须删除ELB并创建一个新的ELB。

参见: https://forums.aws.amazon.com/thread.jspa?threadID=57632

有可能从IAM删除他们,但他们并不总是从ELB正确删除,而ELB可以继续使用旧的。我肯定会说最安全的方法是创建一个新的ELB并删除旧的版本。

+1

我已经为所有三个答案+1了,但是这个是我已经做的,因为它删除了ELB,现在终于使额外的证书消失了。这不是很难做到,但不是很明显,它会工作:) –

+0

它现在实际上有可能在ELB上改变它们......但仍然不可能一起删除它们。 – chantheman

+2

不会在新的ELB域中创建新的ELB结果,因此会打破所有的CNAME映射? – thanikkal

5

这不可能通过亚马逊控制台,而是通过API调用。 http://docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteServerCertificate.html您可能没有注意到这一点,因为它们在IAM下,而不是EC2。

+0

可以将它们从IAM中删除,但它们并不总是从ELB中正确删除,并且ELB可以继续使用旧的。我肯定会说最安全的方法是创建一个新的ELB并删除旧的ELB。 – chantheman

+0

这个_did_用于从IAM中删除证书,但不是从@chantheman指出的ELB中指出的。 –

+0

证书位于监听级别,而不是ELB级别。删除证书和侦听器可能会阻止删除整个负载均衡器。 –

13

您可以使用命令行工具“iam-servercertdel”来执行此操作。您需要首先获取路径,但:

iam-servercertlistbypath 

一旦你有,你可以将其删除:

iam-servercertdel arn:aws:iam::10494620000:server-certificate/my-company-cert 

然而chantheman是在AWS服务的正确可片状有时,因此重建ELB有时更好。

+1

我试着像上面那样运行它,并得到错误“不允许参数”。我在长字符串之前加了一个'-s',但是它接着抱怨非字母数字。但是,运行它只是: 'iam-servercertdel -s my-company-cert' 的工作原理除了如@chantheman所述,证书仍然与ELB一起存在。 –

+2

我只是用's'命名本身(my-company-cert)。为我工作。 – SamV

2

如果证书未在ELB上使用,请使用其他答案中提到的IAM工具。如果是,那么您不应该从IAM中删除它,而应该为ELB设置新的,正确的一个,然后使用IAM工具删除未使用的证书。在删除旧证书之前,我还建议您在更改证书后等待几分钟,因为正确的证书可能需要一点时间才能传播;只需简单地挖掘ELB DNS名称,然后点击每个IP地址以确保它返回新的证书即可。

此外,AWS控制台的最新版本确实支持更新现有负载均衡器上的证书,但仍需使用IAM工具删除不需要的证书。

+0

我想这是我第一次做的,但是直到我删除并重新创建了ELB,证书才消失。不知道是否因为我没有等到足够长的时间才运行IAM删除,但我不这么认为,因为有些证书在运行删除时没有被分配给ELB一段时间。 。 –

+0

这对我有用。 –

6

发行使用亚马逊的API工具下面的命令:

iam-servercertdel -s SERVERCERTNAME 
3

您的第一个步骤应该是停止使用负载平衡器证书。将所有侦听器交换到另一个证书或根本不使用证书。 @SDillard在他的回答中建议您等待几分钟,然后再继续删除证书。

您可以使用AWS Powershell控制台中的以下命令删除证书(有关如何使用其他工具执行此操作的详细信息,请参阅其他答案)。安装AWS SDK for .Net以获取控制台。

Remove-IAMServerCertificate <CertificateName> 

注意,<CertificateName>应该是完整的资源标识符看起来像下面这样。证书名称是最后一个分段。

阿尔恩:AWS:IAM :: 297826370175:服务器证书/

要获得所有证书的列表,你可以使用下面的命令。

Get-IAMServerCertificates 

现在,当您返回到在负载平衡器听众的SSL证书配置(AWS管理控制台内),你不应该再看到您在下拉框中删除的证书。

如果由于某种原因,这不起作用,那么您也可以尝试重新创建负载平衡器(删除现有的平衡器并创建一个新的平衡器)。但请注意,这可能意味着您需要对DNS进行一些更改,因为新的负载平衡器将具有不同的DNS名称。您的CName记录可能需要更改。

更新:自从我第一次发布此答案以来,看起来API已经发生了一些变化。我只能删除当前正在被侦听器使用的证书。尽管在听众中,证书栏中显示“无效证书”,但当我浏览网站时,旧证书继续被返回 - 不知道这是否只是暂时的事情。

39

可以使用下面的命令

aws iam delete-server-certificate --server-certificate-name certificate_object_name 

有[10]对这些证书的数量是有限的,你可以删除ELB相关的证书。

+1

这工作顺利,很高兴终于摆脱那些旧证书。特别有用在心跳的后果! – moodh

+3

我发现我需要用'aws iam list-server-certificates'摆脱哪些证书,以为我会分享! – jmreicha

+0

为我工作。当aws UI不公开功能时,值得一看aws命令行工具可以做什么。 >您可以拥有这些证书的数量有限制[10]。 此限制可能自此更新。我们有20的限制。但我们也使用VPC,所以也许我们的限制是不同的。 – apotek