AWS IoT 身份验证 - 使用自己的证书不起作用

物联网 aws 验证
2021-06-18 04:33:52

我正在尝试根据文档使用我自己的证书设置 AWS IoT 身份验证我已经成功注册了一个 CA,启用了它并将其设置为自动注册。此外,根据文档创建设备证书和密钥。当我第一次使用新生成的密钥和证书连接我的设备时,它不起作用。没有连接的迹象。它应该向$aws/events/certificates/registered/caCertificateID主题发布一条消息在 MQTT 控制台中,我看不到该主题中的任何内容。我还尝试根据JIT 配置文档附加模板,同样,不幸的是,似乎没有任何事情发生。

当我手动注册设备证书 ( aws iot register-certificate --certificate-pem file://deviceCert.pem --ca-certificate-pem file://rootCA.pem) 时,它就可以连接到 AWS。

出了什么问题?

2个回答

请记住,当第一次连接并尝试向 JIT 注册证书时,您不仅必须提供设备证书,必须提供用于签署设备证书的 CA 证书(在本例中为您的 CA)。您可以将 2 个证书与

cat deviceCert.crt caCert.crt > deviceAndCA.crt

为解释在这里

好吧,我参加聚会有点晚了,因为这个问题已经有几个月了,但我想它仍然值得回答。我遇到了同样的问题,并花了很多时间寻找错误。

我用不同的解决方案遇到了类似的问题

如果您使用默认的 openssl.cnf 或其他一些生成 SSL 证书的机制(例如 PHP 的 openssl_csr_sign)创建证书,请确保您生成的证书没有设置 x509_extensions 来制作 CA 证书。

在我的头撞墙三天后,我发现 Amazon IoT 会拒绝任何设置了 CA:true 的设备证书。使用 OpenSSL 验证:

openssl x509 -in deviceCertificate.pem -text -noout

您应该会看到如下内容:

 X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE

我希望这可以帮助某人节省一些时间。