【问题标题】:AWS Cert Mgr - How to create client & device certificates?AWS Cert Mgr - 如何创建客户端和设备证书?
【发布时间】:2019-06-20 19:50:14
【问题描述】:

AWS tech talk了解到,

我可以使用以下选项创建私有服务器证书:

-------

服务器证书用于加密和解密内容。

顾名思义,客户端证书显然用于向各个用户识别客户端

设备证书为物联网生态系统中的每个“事物”创建一个身份, 确保每台设备在连接时进行身份验证,并保护设备之间的通信。


我们已经通过控制台使用 AWS Cert mgr 创建了根 CA 和从属 CA。

如何使用 ACM GoLang sdk 创建设备和客户端证书(私有)?

【问题讨论】:

    标签: go certificate client-certificates aws-certificate-manager


    【解决方案1】:

    [询问 ACM 后更新]

    使用aws acm-pca issue-certificate 命令申请证书:

    CLIENT_ID="device-0001"
    CLIENT_SERIAL=0001
    
    # Create the CSR and Private Key
    openssl req -new -newkey rsa:2048 -days 365 -keyout ${CLIENT_ID}.key -out ${CLIENT_ID}.csr
    
    # Replace --certificate-authority-arn with your ARN returned when you create the certificate authority.
    
    aws acm-pca issue-certificate \
    --csr file://${CLIENT_ID}.csr \
    --signing-algorithm "SHA256WITHRSA" \
    --validity Value=375,Type="DAYS" \
    --idempotency-token 12983 \
    --certificate-authority-arn arn:aws:acm-pca:region:account:\
    certificate-authority/12345678-1234-1234-1234-123456789012
    

    此命令输出 ARN,将此值保存为下一个命令 ($MY-CERT-ARN)

    aws acm-pca get-certificate \
    --certificate-authority-arn arn:aws:acm-pca:region:account:\
    certificate-authority/12345678-1234-1234-1234-123456789012 \
    --certificate-arn $MY-CERT-ARN \
     --output text > ${CLIENT_ID}-cert.pem
    

    [结束更新]

    生成客户端证书的示例代码。为您生成的每个证书更改 CLIENT_ID 和 CLIENT_SERIAL。 ca.pem 和 ca.key 是您的 CA 证书和私钥。

    CLIENT_ID="device-0001"
    CLIENT_SERIAL=0001
    
    openssl genrsa -aes256 -passout pass:xxxx -out ${CLIENT_ID}.pass.key 4096
    openssl rsa -passin pass:xxxx -in ${CLIENT_ID}.pass.key -out ${CLIENT_ID}.key
    rm ${CLIENT_ID}.pass.key
    
    # generate the CSR
    openssl req -new -key ${CLIENT_ID}.key -out ${CLIENT_ID}.csr
    
    # issue this certificate, signed by the CA (ca.pem ca.key)
    openssl x509 -req -days 375 -in ${CLIENT_ID}.csr -CA ca.pem -CAkey ca.key -set_serial ${CLIENT_SERIAL} -out ${CLIENT_ID}.pem
    
    # Give the client the file: ${CLIENT_ID}.full.pem
    cat ${CLIENT_ID}.key ${CLIENT_ID}.pem ca.pem > ${CLIENT_ID}.full.pem
    

    【讨论】:

    • 对不起...我的意思是使用 ACM。我使用openssl 创建了
    • 使用 ACM,私有证书不需要 CSR
    • 您使用的是 ACM 还是 ACM PCA?我更新了我对使用 CSR 的 AWS ACM PCA 的回答。
    • @overexchange - 您不能将 AWS ACM 用于私有证书。 ACM 仅支持 Google 托管服务。要颁发您自己的证书,您必须使用 AMC PCA。
    • 是的,我们正在使用 ACM PCA,然后为设备、客户端和服务器创建自己的证书。
    猜你喜欢
    • 2019-11-02
    • 2014-11-13
    • 2017-02-23
    • 2013-06-30
    • 1970-01-01
    • 2022-01-10
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多