我正在使用 AWS CloudFormation 创建 IoT Thing
、Policy
和 Certificate
。我的堆栈创建成功,但是我无法访问 CloudFormation 创建的证书文件。
查看 aws 文档 here您可以通过 CloudFormation 从证书获得的唯一输出是 ARN 和证书 ID。但是,无法使用我看到的 ARN
或 证书 ID
检索您的证书。
如果您通过 AWS IoT 控制台上传证书签名请求 (CSR),它会显示一个下载链接,您可以通过该链接获取证书文件。
不幸的是,我需要使用 CloudFormation 来创建 IoT 证书
。不过,您似乎可以在创建证书后下载该证书。具体来说,它指出:
Certificates can be retrieved at any time
我一直在搜索文档和网络界面以找出如何“随时”下载我的证书,但没有成功。我对证书和私钥的整个世界还比较陌生,所以希望我错过了一些简单的事情。
有人知道是否可以从 CloudFormation 创建的 IoT Certificate
获取您的证书吗?
最佳答案
可以通过以下方式检索使用 CloudFormation(通过 CSR)创建的证书
AWS IoT 网页
只需导航至安全 - 证书,单击 ...
并选择下载。
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/