我正在使用AWS CloudFormation创建物联网Thing
,Policy
和Certificate
。我的堆栈成功创建,但是,我无法访问CloudFormation创建的证书文件。
查看aws文档here,您可以通过CloudFormation从证书中获得的唯一输出是ARN
和Certificate ID
。但是,无法使用我能看到的ARN
或Certificate ID
来检索您的证书。
如果您通过AWS IoT控制台上传证书签名请求(CSR),它会显示一个下载链接,您可以获取证书文件。
不幸的是,我需要使用CloudFormation来创建IoT Certificate
。但是,看起来您可以在创建证书后下载证书。具体而言,它指出:
可以随时检索证书
我没有成功地搜索文档和网络界面,以了解我如何“随时”下载我的证书。我对证书和私钥的整个世界都比较陌生,所以希望我错过了一些简单的事情。
是否有人知道是否可以从CloudFormation创建的IoT Certificate
获取您的证书?
答案 0 :(得分:1)
使用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
}
Amazon IoT SDK
还可以用于根据证书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();
AFAIK无法将其作为变量输出到云形态模板中。
答案 1 :(得分:0)
啊我找到了使用AWS CLI的方法。但确实需要通过CloudFormation获得它的方法:(
http://docs.aws.amazon.com/cli/latest/reference/iot/describe-certificate.html