【问题标题】:How do I download my IoT certificate created via CloudFormation?如何下载通过 CloudFormation 创建的 IoT 证书?
【发布时间】:2017-03-07 21:53:39
【问题描述】:

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

查看 aws 文档 here,您可以通过 CloudFormation 从证书获得的唯一输出是 ARNCertificate ID。但是,没有办法使用我看到的ARNCertificate ID 来检索您的证书。

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

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

证书可以随时取回

我一直没有成功地搜索文档和网络界面以弄清楚如何“随时”下载我的证书。我对证书和私钥的整个世界都比较陌生,所以希望我错过了一些简单的事情。

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

【问题讨论】:

    标签: amazon-web-services certificate amazon-cloudformation aws-iot


    【解决方案1】:

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

    AWS 物联网网页

    只需导航到安全 - 证书,点击 ... 并选择下载。

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

    【讨论】:

      【解决方案2】:

      啊,我找到了一种使用 AWS CLI 的方法。但是确实需要一种通过 CloudFormation 获取它的方法 :(

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

      【讨论】:

        猜你喜欢
        • 2020-11-09
        • 2018-04-08
        • 2020-08-27
        • 1970-01-01
        • 1970-01-01
        • 2019-09-10
        • 1970-01-01
        • 2022-01-12
        • 2019-12-28
        相关资源
        最近更新 更多