如何解决Python openSSL 从本地 ca.key 创建 X.509 证书签名
我必须创建一个本地证书并使用本地 CA.key 对其进行签名。 在我的文件夹中,我有 CA.key、CA.crt、CA.srl,我必须创建自己的 client.crt 和 client.key 文件。 我愿意:
def create_cert():
with open("ca.key",'r') as f:
CAprivatekey = crypto.load_privatekey(crypto.FILETYPE_PEM,f.read())
with open("ca.srl",'r') as f:
deviceCsr = crypto.load_certificate_request(crypto.FILETYPE_PEM,f.read())
with open("ca.crt",'r') as f:
caCert = crypto.load_certificate(crypto.FILETYPE_PEM,f.read())
cert = crypto.X509()
cert.get_subject().C = "IT"
cert.get_subject().ST = "Brescia"
cert.get_subject().L = "Brescia"
cert.get_subject().O = "Dummy Company Ltd"
cert.get_subject().OU = "Dummy Company Ltd"
cert.get_subject().CN = gethostname()
cert.set_serial_number(1000)
cert.gmtime_adj_notBefore(0)
cert.gmtime_adj_notAfter(10*365*24*60*60)
cert.set_issuer(caCert.get_subject())
cert.set_subject(deviceCsr.get_subject())
cert.set_pubkey(deviceCsr.get_pubkey())
cert.sign(CAprivatekey,'sha1')
return cert
但是当我运行我的函数时,我得到:
OpenSSL.crypto.Error: [('PEMroutines','get_name','no start line')]
在实践中,我会在 python 函数中复制这个命令:
openssl genrsa -out client.key 2048
openssl req -new -out client.csr -key client.key -subj "/C=RO/ST=H/L=Home/O=MQTT Client/OU=MQTT Client/CN=Thing01"
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 365
openssl rsa -in client.key -out client.key
非常感谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。