gpt4 book ai didi

python - PyOpenSSL 在加载证书时抛出错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:27:38 32 4
gpt4 key购买 nike

我有以下代码

key = OpenSSL.crypto.PKey()
key.generate_key(OpenSSL.crypto.TYPE_RSA, 1024)
cert = OpenSSL.crypto.X509()
cert.set_pubkey(key)
cert.sign(key, 'sha1')
public_key = OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
cert2 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, public_key)

最后一行抛出以下错误,这很奇怪,因为我没有使用 ASN1

OpenSSL.crypto.Error: [('asn1 encoding routines', 'ASN1_get_object', 'too long'), ('asn1 encoding routines', 'ASN1_CHECK_TLEN', 'bad object header'), ('asn1 encoding routines', 'ASN1_ITEM_EX_D2I', 'nested asn1 error'), ('asn1 encoding routines', 'ASN1_TEMPLATE_NOEXP_D2I', 'nested asn1 error'), ('asn1 encoding routines', 'ASN1_TEMPLATE_NOEXP_D2I', 'nested asn1 error'), ('asn1 encoding routines', 'ASN1_TEMPLATE_NOEXP_D2I', 'nested asn1 error'), ('PEM routines', 'PEM_ASN1_read_bio', 'ASN1 lib')]

这是public_key的内容

-----BEGIN CERTIFICATE-----
MIIBVDCBvgIBADANBgkqhkiG9w0BAQUFADAAMAQfAB8AMAAwgZ8wDQYJKoZIhvcN
AQEBBQADgY0AMIGJAoGBALKnfGRn5ajhcUJTs4PfwBfmjkpaDNeeRJfg8PmFRVFC
nZZPJTQoqrEAWnpGSHP1KWwiRcA7iFOIGe5lOj+vficIxGcNNv6n/OxBKLEeFYkb
+GoLyALEFcBPToe0KSHIcRwZcx6wg0kvtBCzTn1rA195u/tiuZfhza7ho7Se9g+X
AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEArhzT6wsfV5e2JetlZ7erOj0gkG046kow
B2wqmUvvQIxtZX+RYQBJvxlaaSJTSKjzjSafXIraemsPkkej9C9OudU54gfArvSK
UgSfkg4yABNUIWiSjEGdzFAoqmpPhKFXDoeW3SvqQdu+EZD/MF+AxmXufLADYGch
1Ga3c2SkOj8=
-----END CERTIFICATE-----

是什么原因造成的?

最佳答案

您实际上使用 dump_certificate 生成了无效证书。 Openssl 应该出错,或者 pyopenssl 应该检查它,但无论哪种方式 - 这是一个错误。

这只是一个猜测,但可能因为缺少一些必填字段而失败:序列号、有效性、主题、发行者。尝试设置这些。

如果您有时间,也可以将此代码段作为错误报告给 pyopenssl - 您永远不应该从一开始就从中获得糟糕的 PEM。

关于python - PyOpenSSL 在加载证书时抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32387319/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com