使用Java为AWS IoT创建自签名证书

本教程将介绍使用Java为AWS IoT创建自签名证书的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

使用Java为AWS IoT创建自签名证书 教程 第1张

问题描述

我有一个根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上的事件以激活证书;

    注册公钥。

选项1和2在AWS文档中进行了说明
https://docs.aws.amazon.com/iot/latest/developerguide/auto-register-device-cert.html

选项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创建自签名证书的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。