如何生成esp_cert_private_key.bin?
如何生成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。请予以赐教,谢谢!
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。请予以赐教,谢谢!
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()
#!/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()
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 的关注!
请问,您是不是弄错脚本了?您贴出来的脚本是 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 的关注!
Who is online
Users browsing this forum: No registered users and 14 guests
Login
Newbies Start Here
Are you new to ESP8266?
Unsure what to do?
Dunno where to start?
Start right here!
Latest SDK
Documentation
Complete listing of the official ESP8266 related documentation release by ESPRESSIF!
Must read here!
- All times are UTC+08:00
- Top
- Delete all board cookies
About Us
Espressif Systems is a fabless semiconductor company providing cutting-edge low power WiFi SoCs and wireless solutions for wireless communications and Internet of Things applications. We are the manufacturer of ESP8266EX.