【发布时间】:2019-09-10 00:20:33
【问题描述】:
我有一个根 CA 证书及其私钥(CAcert.pem 和 CApvtkey.key)。
根 CA 证书已在 AWS IoT 核心上注册。这将用于自签名和验证其他证书以进行身份验证。
我正在尝试使用 Java 创建由我的根 CA 证书签名的证书,但运气不佳。
AWS IoT Java SDK 提供了生成证书以及在 AWS 上注册/激活它们的功能,但我不知道如何使用我的根 CA 证书对它们进行签名并激活它们。
我只有这个:
//Previous code sets up thing name etc...
CreateThingResult resp1 = client.createThing(thingRequest);
CreateKeysAndCertificateRequest req = new CreateKeysAndCertificateRequest();
req.setSetAsActive(true);
CreateKeysAndCertificateResult resp2 = client.createKeysAndCertificate(req);
client.attachThingPrincipal(new AttachThingPrincipalRequest().
withPrincipal(resp2.getCertificateArn()).withThingName("Java-App_Thing"));
有人知道如何创建由我的 CA 证书签名的证书吗?
【问题讨论】:
-
您是否考虑过使用其他工具,例如
openssl? -
@michalk,我有,并且也在使用 bouncycastle,但是如何在 AWS IoT 云上激活证书?
-
正如您所说,您拥有 PEM 格式的 CA 私钥和 CA 证书,其中包含证书的公钥。使用这些文件,您可以尝试生成使用 CA 证书签名的证书。 Here 是使用
openssl执行此操作的示例。基于 CA 密钥和 PEM 生成 CSR 的第二步对您来说最重要。 -
@michalk 。我已经这样做了,谢谢。 (我应该在问题中提到)。我需要在 Java 中完成所有这些,然后在云上注册生成的签名证书。即使在 bash 中执行该部分,生成签名证书也可以,但我仍然找不到任何 Java API 来在 AWS IoT 平台上注册和激活证书。
-
你知道如何用java中的CA签署证书了吗?
标签: java ssl aws-sdk aws-iot self-signed-certificate