完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我一直在[sub]使用 ESP8266 Huzzah Feather 模块,尝试开发一个应用程序以使用 TLS API 连接到服务器。我在闪存中加载了 DER 形式的服务器 CA 证书和客户端证书和密钥。当我调用加载 CA 证书时:
bool res = client.setCACert_P(CACert, CACertLen); “不晚于”日期存在解析错误。日期应为: “不晚于:2054 年 1 月 23 日 14:55:26 GMT”<** 注意:这是 Generalizedtime 格式 **> 但调试显示显示: “不晚于:12 月 18 日星期二 08:27:10 1917" 我查看了为保存 DER 证书而创建的数组中的二进制数据,它是正确的。DER 证书是使用 OpenSSL 工具从 PEM 版本“root.crt”(从服务器下载)转换而来的。我还使用了 OpenSSL 工具来显示 PEM 和 DER 版本,它们都正确显示了日期。 在握手期间,CA 证书链中的所有证书都会出现同样的问题。调试输出给出以下错误: Verify: Cert has expired ssl_verify_cert returned -517 Error: Cert has expired Certificate verify failed 我使用的是 Arduino IDE 的 1.8.5 版本,工具菜单中有以下选项: Generic ESP8266 Module Flash模式QIO 闪存大小 4M(1M SPIFFS) 调试端口“串行” 调试级别“SSL+TLS_MEM+HTTP_SERVER+HTTP_CLIENT+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM”(一切设置) lwIP 变体:“v2 lower memory” 重置方法: “ck” 晶体频率:“26 MHz” VTables:“Flash” Flash 频率:“40 MHz” CPU 频率:“80 MHz” 内置 LED:“2” 上传速度 “115200” 擦除 Flash “Only Sketch” 端口:“COMM 2" 我不知道这是 SSL 代码中的错误还是我做错了什么,但希望知道代码的人帮助确定发生了什么。我将包含一份相关草图代码的副本,证书和调试输出供您参考。非常感谢您的帮助。 我从该论坛的版主 (@igrr) 那里看到了很多非常好的支持评论/帮助。我真的很感激这里的一些帮助。为了达到这一点,我做了很多工作,其中大部分工作都得益于这些论坛中的评论,我认为我距离获得可行的解决方案仅几步之遥。如果有人可以将我指向完成此解析的来源并且不介意分享我的发现,我不介意自己挖掘代码。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
145个成员聚集在这个小组
加入小组536浏览 6评论
449浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
432浏览 5评论
430浏览 4评论
404浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 12:55 , Processed in 0.526891 second(s), Total 43, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号