CA 证书没有 basicConstraints 扩展为 true [已关闭]

问题描述 投票:0回答:2

我正在遵循有关创建自签名证书的AWS 指南。 但在创建我的 CA 后,我尝试将其上传到 AWS IOT,却收到此错误:

命令:

aws iot register-ca-certificate --ca-certificate file://CA_cert.pem --verification-cert file://verificationCert.crt

错误:

调用时发生错误(CertificateValidationException) RegisterCACertificate 操作:CA 证书无效。 CA 证书没有 basicConstraints 扩展为 true

amazon-web-services openssl certificate iot aws-iot
2个回答
34
投票

我也使用过AWS IoT并遇到了同样的错误,我找到了解决方案。

错误原因

出现此错误是因为 CA 证书中的

basicConstraints
扩展名未设置为
TRUE
,这意味着该证书是 CA,因此该证书能够签署其他公钥以生成客户端证书。

请注意,客户端 X 的证书包含由 CA 私钥签名的 X 公钥。其他客户端(例如 Y)可以使用 CA 的公钥来验证 X 的公钥。

我认为您在尝试生成 CA 证书时遇到了错误。该错误消息表明该 CA 的证书不允许签署其他客户端公钥。

以下是我的做法。

解决方案

我假设您已经生成了 CA 的密钥,

rootCA.key

我们需要一个

openssl
配置文件,比如
rootCA_openssl.conf
。请注意,您可以修改这些值。

[ req ]
distinguished_name       = req_distinguished_name
extensions               = v3_ca
req_extensions           = v3_ca

[ v3_ca ]
basicConstraints         = CA:TRUE

[ req_distinguished_name ]
countryName              = Country Name (2 letter code)
countryName_default      = KR
countryName_min          = 2
countryName_max          = 2
organizationName         = Organization Name (eg, company)
organizationName_default = Deeply Inc.

然后使用配置文件生成CA的证书,

rootCA_openssl.conf

openssl req -new -sha256 -key rootCA.key -nodes -out rootCA.csr -config rootCA_openssl.conf
openssl x509 -req -days 3650 -extfile rootCA_openssl.conf -extensions v3_ca -in rootCA.csr -signkey rootCA.key -out rootCA.pem 

现在我们有了CA的证书了,

rootCA.pem
。 然后您可以按照 AWS IoT 文档中的说明进行操作。 例如:

# Get the registration code for the use below: 
# $ aws iot get-registration-code 

openssl genrsa -out verificationCert.key 2048

openssl req -new -key verificationCert.key -out verificationCert.csr
# Put the registration code in Common Name field

openssl x509 -req -in verificationCert.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out verificationCert.crt -days 500 -sha256

-2
投票

@mctuna 与此(来自 AWS):

生成密钥对。
openssl genrsa -out rootCA.key 2048

使用密钥对中的私钥生成CA证书。
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem

© www.soinside.com 2019 - 2024. All rights reserved.