2012-06-01 30 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