如何下载通过CloudFormation创建的IoT证书?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何下载通过CloudFormation创建的IoT证书?相关的知识,希望对你有一定的参考价值。

我正在使用AWS CloudFormation创建物联网ThingPolicyCertificate。我的堆栈成功创建,但是,我无法访问CloudFormation创建的证书文件。

查看aws docs here,您可以通过CloudFormation从证书中获得的唯一输出是ARNCertificate ID。但是,无法使用我能看到的ARNCertificate ID检索您的证书。

如果您通过AWS IoT控制台上载证书签名请求(CSR),则会显示一个下载链接,您可以获取证书文件。

enter image description here

不幸的是,我需要使用CloudFormation来创建IoT Certificate。但是,看起来您可以在创建证书后下载证书。具体说明:

可以随时检索证书

我没有成功地搜索文档和Web界面,以弄清楚如何“随时”下载我的证书。我对全世界的证书和私钥都比较陌生,所以我希望我能错过一些简单的东西。

有谁知道是否有可能从CloudFormation创建的IoT Certificate获取您的证书?

答案

可以通过以下方式检索使用CloudFormation(通过CSR)创建的证书

Aws IoT网页

只需导航到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-----
MIIDsTCCApmg.....VsAzFQ==
-----END CERTIFICATE-----
", 
        "transferData": {}, 
        "ownedBy": "123456789", 
        "creationDate": 1519840820.888
    }

亚马逊物联网SDK

也可用于根据证书ID(您可以通过cloudformation输出)将证书内容(PEM格式)检索为String

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无法将其作为变量输出到cloudformation模板中。

另一答案

啊我找到了使用AWS CLI的方法。但真的需要一种方法来通过CloudFormation获得它:(

http://docs.aws.amazon.com/cli/latest/reference/iot/describe-certificate.html

以上是关于如何下载通过CloudFormation创建的IoT证书?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用单个 cloudformation 模板创建多个 Elasticbeanstalk 环境

如何通过 CloudFormation 禁用 Cognito 用户注册?

如何通过 Cloudformation 将弹性 IP 附加到 Nat 网关

如何通过 cloudformation 部署 opsworks 应用程序?

如何通过 CloudFormation 设置 EC2 实例根卷的标签

如何使用 cloudformation 创建私有 AWS Api 网关?