amazon-web-services - 如何下载通过 CloudFormation 创建的 IoT 证书?

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

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

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

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

enter image description here

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

Certificates can be retrieved at any time

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

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

最佳答案

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

AWS IoT 网页

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

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
    }

亚马逊物联网开发工具包

还可以用于根据证书 ID(可以通过 cloudformation 输出)以字符串形式检索证书内容(PEM 格式)

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();

据我所知,不可能将其输出为 cloudformation 模板中的变量。

关于amazon-web-services - 如何下载通过 CloudFormation 创建的 IoT 证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42659056/

相关文章:

amazon-web-services - 使用cloudformation模板使用iis和rds部署ASP NET网站作为sql服务器

amazon-web-services - AWS AutoScaling - 实例生命周期

c# - 从商店加载 X509Certificate2 证书链

java - 如何终止 Amazon EMR 中的特定 JobFlow?

java - 使用 SSL 证书的 Java 连接 HTTPS 错误

wcf - 客户端身份验证方案 'Anonymous' 禁止 HTTP 请求

amazon-web-services - 无法执行 AWS Pipeline 错误 : "An error occurred (AccessDenied) when calling the PutObject operation: Access Denied"

aws-cloudformation - 云信息 : substitute variable in map key

amazon-web-services - AWS Cloudformation - 在 Fn::Sub 中使用 AWS::NoValue

objective-c - 使用 https Amazon AWS 上传图像时出现证书错误