| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 使用模版自动化 Amazon IoT 设备创建及证书注册过程 -> 正文阅读 |
|
[嵌入式]使用模版自动化 Amazon IoT 设备创建及证书注册过程 |
背景介绍 利用即时注册(JITR)功能,可以快速的进行设备证书注册及设备上线。但是配置相关 Amazon Lambda 函数的方式相对复杂。使用本文介绍的即时部署(JITP)功能,可以简化?Amazon?IoT 规则和 Amazon Lambda 函数的步骤,直接在注册设备 CA 证书的同时附加上一个自定义好的模版。在设备第一次连接 Amazon IoT 平台的时候,JITP 会参照该模版的定义来完成设备证书的注册和设备在云端的创建过程。 需要特别注意的是,JITP 作为一个相对比较新的功能,目前在亚马逊云科技中国区还没有部署。如果设备需要连接亚马逊云科技中国区,还是需要使用 JITR 来完成证书注册及设备上线。但对于一些需要在海外使用亚马逊云科技的用户,可以利用这个功能对设备进行设备注册控制。 从上图 JITR 和 JITP 两种方式的对比中可以看出, JITP 简化了部分流程。 JITP 的实现步骤如下: 1.创建 CA 证书, 模版和相应的 Amazon IAM 权限。 2.在?Amazon?IoT 平台上注册和激活 CA 证书并附加模版。 3.使用该 CA 证书签发设备证书并安装在 ?Amazon?IoT 设备上。 4.Amazon IoT 设备与 Amazon IoT 平台的第一次连接。 本文中的 Amazon IoT 设备将会使用一台 Amazon Linux EC2 实例进行模拟,并使用 MQTT Mosquitto Client 工具来模拟 MQTT 终端,Amazon IoT 设备的配置工作会在这台 Amazon EC2 实例上进行。 创建 CA 证书,模版和相应的 Amazon IAM 权限 登陆 Amazon EC2 实例并执行如下命令创建私钥和对应的 CA 证书:
*左滑查看更多 在最后一步创建 CA 证书时会要求填入 Amazon CSR 相关信息,请按照实际情况填写:
由于 JITP 是通过模版定义来注册设备证书和创建设备,因此模版中相应的权限必不可少。下面我们在 Amazon IAM 中来创建一个角色并赋予相应的权限。 1.登陆到 Amazon Console 并进入 Amazon IAM 页面。 2.点击页面左侧的角色后,点击创建角色按钮。 3.在创建角色页面选择“亚马逊云科技产品”中的 Amazon IoT,然后点击”下一步:权限”。 4.在这个页面中不需要做任何改动,直接点击”下一步:审核” 5.填写角色名称“JITP”后,点击创建角色。 ?6.角色创建完成后,点击角色名称 JITP 并记录下角色ARN(arn:aws:iam::12345678910:role/JITP)。 在这个页面中不需要做任何改动,直接点击”下一步:审核” 填写角色名称“JITP”后,点击创建角色。 角色创建完成后,点击角色名称 JITP 并记录下角色ARN(arn:aws:iam::12345678910:role/JITP)。 在准备好角色和权限后我们开始创建模版,这个模版会在之后注册 CA 证书的时候一起提交给 Amazon IoT Core。 这里的模版实际上就是一个 JSON 文档,里面包含两部分。一部分是参数(Parameters),另一部分是资源(Resource). Parameters部分你可以定义如下内容:
在下面的模版中我们定义了两个 Parameters,一个是 AWS::IoT::Certificate::Country,另一个是 AWS::IoT::Certificate::Id。这样在设备首次连接 Amazon IoT 平台时,设备证书中对应的这两个字段会被抽取出来用于 Resources 中 Thing 的创建。第二行的 roleARN 是前面创建的角色 JITP 的 ARN (Amazon Resource Names),如果按照步骤做的话应该已经记录下来了。
*左滑查看更多 我们将这段 JSON 代码保存到 Amazon EC2 实例中~/cert 文件夹里面的一个文件中,文件名为 provisioning-template.json。 这个模版实际上规定了在设备连接时, ?Amazon? IoT Core 会创建两样东西,一个是 Thing(设备在云上的映射),另外一个是 Policy(操作权限),您可以从模版中 Resources中看到,并且接下来 JITP 还会自动做三件事:
在Amazon?IoT 平台上注册和激活 CA证书 并附加模版 有了之前的准备工作,我们可以开始注册CA证书和模版到 Amazon IOT Core。为了安全,?Amazon?OT Core提供了相应的审核流程确保你同时持有 CA 证书和对应的私钥。因此,在最终注册 CA 证书之前,我们还需要利用 CA 证书生成一张用于验证CA 证书和私钥持有者身份的中间证书。下面这个?Amazon?CLI 命令会返回一个随机生成的认证码,这个认证码会和你的账户绑定。记录下这个认证码,很快我们就会用到。
*左滑查看更多 使用 OpenSSL 生成用于验证身份的私钥和证书请求文件(Amazon CSR – Certificate Signing Request):
*左滑查看更多 在创建 Amazon CSR 的过程中,你会被提示输入如下一些内容,将前一步记录下的认证码填入到 Common Name 中:
*左滑查看更多 接下来,使用 CA 证书和私钥,以及上面创建的 Amazon CSR 来生成一份用于验证身份的证书:
*左滑查看更多 最后,通过如下命令导入 CA 证书和中间证书完成 CA 证书的注册和激活。同时,通过设置–allow-auto-registration 的方式,开启设备连接至 ?Amazon?IoT Core 时设备证书的自动注册,并通过–registration-config 绑定模版到 CA 证书上。这个命令的输出会返回对应 CA 证书在 Amazon?IoT Core 上的证书 arn (certificateArn)和证书 ID (caCertificateId).
*左滑查看更多 这时如果你进入?Amazon? IoT Core 服务,点击左侧的安全—>CA,会看到我们的 CA 已经注册到了?Amazon?IoT 平台上了。 使用 CA 证书签发设备证书 当我们创建并注册好CA证书之后,就可以开始用这个CA证书来签发设备证书了,步骤如下: 1.创建一个设备证书的私钥 Device.key 和对应的证书请求文件 Device_Certificate.csr:
2. 使用 CA 证书,CA 证书私钥和证书请求文件签发设备证书 Device_Certificate.crt:
*左滑查看更多 Amazon IoT 设备与Amazon IoT 的第一次连接 你可以在你的 Amazon IoT 设备上安装亚?Amazon? IoT SDK,通过自己的代码调用 SDK 来实现所有的功能。这里我们为了简化步骤和节约时间,选择利用 Amazon EC2 上安装 MQTT Mosquitto Client 工具来模拟 MQTT 终端。 1.登陆到 Amazon EC2 实例并执行如下命令:
*左滑查看更多 2. 如果上面的命令执行时报依赖缺少的错误,可以加上–skip-broken再执行一遍即可
*左滑查看更多 3. 进入到之前创建的 cert 目录
4. 合并 CA 证书和设备证书到一个新的证书形成有效的证书链: $ cat Device_Certificate.crt CA_Certificate.pem > Device_CA_Certificate.crt 5. 执行 mosquitto_pub 命令去发布一个消息到对应的 topic 上面,这也是设备与 ?Amazon?IoT Core 的第一次连接。如果你回想一下之前的步骤,到目前为止我们的设备证书还只存在于设备上面,并没有在 ?Amazon?IoT Core 上注册,那么接下来我们尝试发送一条消息。
*左滑查看更多
6. 成功连接并发布消息后会有如下的输出,并且如果你登录 ?Amazon?IoT 界面,点击左侧的安全—>证书后可以看到设备证书已经注册并激活了。
*左滑查看更多 本篇作者 郭松 亚马逊云科技解决方案架构师 负责企业级客户的架构咨询及设计优化,同时致力于 Amazon IoT 和存储服务在国内和全球企业客户的应用和推广。加入亚马逊云可进之前在EMC研发中心担任系统工程师,对企业级存储应用的高可用架构,方案及性能调优有深入研究。 听说,点完下面4个按钮 就不会碰到bug了! |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 9:36:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |