0

我正在使用AWS CloudFormation創建物聯網ThingPolicyCertificate。我的堆棧創建成功,但是,我無法訪問CloudFormation創建的證書文件。如何下載通過CloudFormation創建的IoT證書?

查看aws文檔here您可以通過CloudFormation從證書獲得的唯一輸出是ARNCertificate ID。但是,使用我可以看到的ARNCertificate ID無法檢索到您的證書。

如果您通過AWS IoT控制檯上傳證書籤名請求(CSR),它會顯示一個下載鏈接,您可以獲取您的證書文件。

enter image description here

不幸的是,我需要使用CloudFormation創建物聯網Certificate。但是,看起來您可以在證書創建後下載證書。它具體規定:

證書可以在任何時間

檢索我一直不成功精練的文檔和Web界面找出我怎麼能「在任何時候」下載我的證書。我對證書和私鑰的整個世界都比較陌生,所以希望我錯過了一些簡單的事情。

有誰知道是否可以從CloudFormation創建的物聯網Certificate獲取您的證書?

回答

1

證書使用CloudFormation(通過CSR)可以通過以下方式

AWS物聯網網頁

檢索創建

只需導航到Security - Certificates,點擊...並選擇Download。

enter image description here

AWS CLI

至於你提到的CLI也是一個選項

aws iot describe-certificate --certificate-id fcd371fcd371fcd371fcd371fcd371fcd371fcd371fcd371fcd371fcd371fcd3 

將返回

{ 
    "certificateDescription": { 
     "certificateArn": "arn:aws:iot:eu-central-1:xxxxxx", 
     "status": "ACTIVE", 
     "certificateId": "fcd371fcd371fcd371fcd371fcd371fcd371fcd371fcd371fcd371fcd371fcd3", 
     "lastModifiedDate": 1519840881.49, 
     "certificatePem": "-----BEGIN CERTIFICATE-----\nMIIDsTCCApmg.....VsAzFQ==\n-----END CERTIFICATE-----\n", 
     "transferData": {}, 
     "ownedBy": "123456789", 
     "creationDate": 1519840820.888 
    } 

亞馬遜物聯網SDK

也可用於檢索證書內容(PEM格式)基於證書ID的字符串(你可以通過cloudformation輸出)

import com.amazonaws.services.iot.AWSIot; 
import com.amazonaws.services.iot.AWSIotClientBuilder; 
import com.amazonaws.services.iot.model.DescribeCertificateRequest; 
import com.amazonaws.services.iot.model.DescribeCertificateResult; 

DescribeCertificateRequest describeCertificateRequest = new DescribeCertificateRequest(); 
describeCertificateRequest.setCertificateId("fcd371fcd371fcd371fcd371fcd371fcd371fcd371fcd371fcd371fcd371fcd3"); 
DescribeCertificateResult describeCertificateResult = awsIot.describeCertificate(describeCertificateRequest); 
describeCertificateResult.getCertificateDescription().getCertificatePem(); 

AFAIK這是不可能將其輸出爲雲形態模板中的變量。