如何创建与 AWS IoT 兼容的 X.509?

How to create X.509 compatible to AWS IoT?

我正在尝试创建自签名 X.509 证书以在 AWS IoT 中使用。我可以理解它与普通的 OpenSSL 证书没有什么不同,但我偶然发现 AWS 创建的 PEM 文件有些不同。因为我是 OpenSSL 的新手,所以我不知道我错过了什么

我使用以下命令创建私钥、CSR 和服务器证书

openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem

openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out server.crt

如果我在 AWS IoT 控制台上传 csr.pem 它接受,但我无法使用此文件连接 MQTT。

如果我在 AWS IoT 中上传 server.crt,它会抱怨它不是 CSR 格式,这是可以理解的。

让我感到奇怪的是,一旦我在 AWS IoT 控制台中上传 csr.pem,我就可以从控制台下载文件 xxxx.pem.crt。当我用来连接到 MQTT 时,这个文件工作得很好。我不知道如何创建这个文件。

我的用例是不依赖 AWS 来生成这个文件。

参考: http://docs.aws.amazon.com/iot/latest/developerguide/identity-in-iot.html

你能试试这些进行基本测试吗:

openssl genrsa -out privkey.pem 2048
openssl req -new -key privkey.pem -out cert.csr

然后您可以使用 CLI 从 CSR 创建。 http://docs.aws.amazon.com/iot/latest/apireference/API_CreateCertificateFromCsr.html