Create a self-signed certificate in Java for AWS IoT(使用Java为AWS IoT创建自签名证书)
本文介绍了使用Java为AWS IoT创建自签名证书的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个根CA证书及其私钥(CAcert.pem和CApvtkey.key)。 已在AWS IoT核心上注册根CA证书。这将用于自签名和验证其他证书以进行身份验证。我正在尝试使用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证书签名的证书吗?
aws
所以推荐答案的文档相当模糊。我也有同样的问题。我是这样修好它的。假设您已向AWS IoT注册了您的CA, 即使您为您上载的CA启用自动注册,AWS IoT也不允许设备连接。证书将有几个选项用于JIT(准时)注册。
- 创建Lamba,在一定条件下激活设备;
- 列出MQTT上的事件以激活证书;
- 注册公钥。
选项3的执行步骤:
- 注册该物品
software.amazon.awssdk.services.iot.IotClient iotClient = IotClient.create()
//This allows AWS Credentials to be picked up using DefaultAWSCredentialsProviderChain
CreateThingRequest thingToBeCreated =
CreateThingRequest.builder().thingName("Unique Id of Device").build();
iotClient.createThing(thingToBeCreated);
- 注册并激活设备的公钥。
RegisterCertificateRequest registerCertificateRequest = RegisterCertificateRequest.builder()
.caCertificatePem("CA Pem as String")
.certificatePem("Device Public Key in Pem as String")
.setAsActive(true)
.build();
final RegisterCertificateResponse registerCertificateResponse = iotClient.registerCertificate(registerCertificateRequest);
- 将证书附加到该物件。
AttachThingPrincipalRequest attachThingPrincipalRequest = AttachThingPrincipalRequest.builder()
.thingName("Unique Id of Device")
.principal(registerCertificateResponse.certificateArn())
.build();
iotClient.attachThingPrincipal(attachThingPrincipalRequest);
- 可选,将策略附加到该对象,使其可以连接。
AttachPolicyRequest attachPolicyRequest = AttachPolicyRequest.builder()
.policyName("policy_that_allow_device_connections")
.target(registerCertificateResponse.certificateArn())
.build();
iotClient.attachPolicy(attachPolicyRequest);
这篇关于使用Java为AWS IoT创建自签名证书的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:使用Java为AWS IoT创建自签名证书
猜你喜欢
- 将 Java Swing 桌面应用程序国际化的最佳实践是什么? 2022-01-01
- 未找到/usr/local/lib 中的库 2022-01-01
- 如何使 JFrame 背景和 JPanel 透明且仅显示图像 2022-01-01
- 如何指定 CORS 的响应标头? 2022-01-01
- 获取数字的最后一位 2022-01-01
- Eclipse 的最佳 XML 编辑器 2022-01-01
- 在 Java 中,如何将 String 转换为 char 或将 char 转换 2022-01-01
- GC_FOR_ALLOC 是否更“严重"?在调查内存使用情况时? 2022-01-01
- java.lang.IllegalStateException:Bean 名称“类别"的 BindingResult 和普通目标对象都不能用作请求属性 2022-01-01
- 转换 ldap 日期 2022-01-01