示例-Luat Demo-Socket SSL

如何用开发板实现SLL Socket功能

简介

SSL socket是物联网中较为常用的功能,经过SSL证书进行最彻底的身份认证,确保证书持有者的真实性,从而最大限度上确保链接的安全性,为你的物联网产品提供安全的保障。本文介绍如何用Air724开发板,进行单向和双向SSL认证的功能演示,详细介绍请参考SSL Soceket

材料准备

  1. EVB_Air724UG_A13开发板一套,包括天线SIM卡,USB线。
  2. 测试地址,demo中使用的测试服务器可直接使用,也可自行搭建。
  3. luat开发环境:环境搭建方法
    图片.png

步骤

本文以resource\8910_script\script_LuaTask_V2.3.7\demo\socketSsl\shortConnection这个DEMO为例做演示。

将上述demo烧录到开发板中,运行后可在日志中看到如下图所示。

在实际使用中较为重要的是socket.tcp(ssl, cert)该接口。下面针对该接口在Demo中的使用进行简述。

 --双向认证测试
                if mutualAuth then                   
                    --创建一个socket ssl tcp客户端
                    socketClient = socket.tcp(true,{caCert="ca.crt",clientCert="client.crt",clientKey="client.key"})
                    --阻塞执行socket connect动作,直至成功
                    connectResult = socketClient:connect("36.7.87.100","4434")

该接口的第一个参数表示是否为SLL连接,是则为true其余均为否。该接口的第二个参数cert表示SSL所需的证书配置,只有当该接口第一个参数为true时有效。在上面的代码中展示的是客户端与服务端进行双向认证的配置详细描述可参照下表。

参数释义
caCert服务器证书
clientCert客户端证书
clientKey客户端秘钥

当只对服务器端进行验证时代码如下所示,仅传入服务器证书即可。

                    --单向认证测试
               
                    --创建一个socket ssl tcp客户端
                    socketClient = socket.tcp(true,{caCert="ca.crt"})
                    --阻塞执行socket connect动作,直至成功
                    connectResult = socketClient:connect("36.7.87.100","4433")

常见问题

  • 服务器与客户端无法连接
    该问题常见于服务器与客户端系统时间不一致,原因在于系统中使用了OpenSSL,证书中含有一个有效时间段,当客户端或服务器端的系统时间不在该时间段内时SSL会因证书验证失败而无法建立连接。解决方法开机联网成功后同步系统时间执行即执行ntp.timeSync()该函数。

相关资料以及购买链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值