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创建自签名证书
基础教程推荐
猜你喜欢
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 在螺旋中写一个字符串 2022-01-01