如何生成esp_cert_private_key.bin?

jinhucn
Posts: 20
Joined: Wed Dec 23, 2015 12:06 pm

如何生成esp_cert_private_key.bin?

Postby jinhucn » Fri Mar 18, 2016 11:52 am

要做ssl客户端证书认证,需要调用espconn_secure_cert_req_enable,其中参数flash_sector要指向esp_cert_private_key.bin在flash中的地址。

ESP8266 SSL 加密使用手册1.4中(viewtopic.php?f=51&t=1025)说:

(6) 重命名证书名称(例如 TLS.x509_1024.cer)改为 certificate.cer;重命名密钥名称(例如TLS.key_1024)改为 private_key.key_1024。请注意,此步骤中必须重新命名,否则将导致认证失败。
(7) 将重命名后的文件,与脚本 make_cert.py 拷贝到同一目录下。
(8) 运行脚本 make_cert.py生成 esp_cert_private_key.bin,esp_cert_private_key.bin 的烧录位置由接口 espconn_secure_cert_req_enable 设置,用户可自行定义。

我按照手册中操作,无论如何都没法生成esp_cert_private_key.bin,仔细查看make_cert.py文件也没看到任何代码可以生成esp_cert_private_key.bin。请予以赐教,谢谢!

jinhucn
Posts: 20
Joined: Wed Dec 23, 2015 12:06 pm

Re: 如何生成esp_cert_private_key.bin?

Postby jinhucn » Tue Mar 22, 2016 8:12 am

make_cert.py文件代码如下,请问哪部分是生成esp_cert_private_key.bin的代码?

#!/usr/bin/python
import os


class Cert(object):
def __init__(self, name, buff):
self.name = name
self.len = len(buff)
self.buff = buff
pass

def __str__(self):
out_str = ['\0']*32
for i in range(len(self.name)):
out_str[i] = self.name[i]
out_str = "".join(out_str)
out_str += str(chr(self.len & 0xFF))
out_str += str(chr((self.len & 0xFF00) >> 8))
out_str += self.buff
return out_str
pass


def main():
cert_list = []
file_list = os.listdir(os.getcwd())
cert_file_list = []
for _file in file_list:
pos = _file.find(".cer")
if pos != -1:
cert_file_list.append(_file[:pos])

for cert_file in cert_file_list:
with open(cert_file+".cer", 'rb') as f:
buff = f.read()
cert_list.append(Cert(cert_file, buff))
with open('esp_ca_cert.bin', 'wb+') as f:
for _cert in cert_list:
f.write("%s" % _cert)
pass
if __name__ == '__main__':
main()

ESP_Faye
Posts: 1646
Joined: Mon Oct 27, 2014 11:08 am

Re: 如何生成esp_cert_private_key.bin?

Postby ESP_Faye » Tue Mar 22, 2016 10:07 am

您好,

请问,您是不是弄错脚本了?您贴出来的脚本是 make_cacert.py,不是 make_cert.py。

就在您提到的链接中 http://bbs.espressif.com/viewtopic.php?f=51&t=1025 下载 TLS_BiDirectVerif_Demo.zip
解压缩后,路径 TLS_BiDirectVerif_Demo\client_cert 中有脚本 make_cert.py,您在该路径中直接运行脚本,即可生成 esp_cert_private_key.bin。

感谢您对 ESP8266 的关注!

jinhucn
Posts: 20
Joined: Wed Dec 23, 2015 12:06 pm

Re: 如何生成esp_cert_private_key.bin?

Postby jinhucn » Tue Mar 22, 2016 12:02 pm

你好,我是从下载的sdk中的tools目录中找到的make_cert.py文件,iot 1.5.0、1.5.1、1.5.2以及rtos中的make_cert.py均为上述文件。

ESP_Faye
Posts: 1646
Joined: Mon Oct 27, 2014 11:08 am

Re: 如何生成esp_cert_private_key.bin?

Postby ESP_Faye » Tue Mar 22, 2016 2:33 pm

您好,

感谢您的反馈,我们将会更新 tools 文件夹中的脚本。

给您带来不便,深感抱歉。

Who is online

Users browsing this forum: No registered users and 188 guests