d2i_X509 崩溃,证书格式错误?

d2i_X509 collapses, bad certificate format?

我已经创建了一对密钥和一个自签名证书。 键被包围:

-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----

和证书:

-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----

我有这条线:

X509 *x509_certificate = d2i_X509(NULL, &cert_ptr, cert_size)

其中 cert_ptr 指向无符号字符缓冲区。 因此,我通过十六进制编辑器将我的证书从 ascii 更改为十六进制,例如将其放入缓冲区 {0xAA, 0xBB...} 中。 但似乎我做错了什么,因为 d2i_X509 崩溃了。

谢谢

我在 C# 中遇到了同样的问题。

传递没有页眉和页脚行的证书并从 Base64 解码内容有助于解析证书。