首页 > 解决方案 > Openssl 从 C 证书包中挑选证书(.pem 格式)

问题描述

我有一个 PEM 格式的证书链,我需要在 C 中检索捆绑包中的每个证书。该文件如下所示:

-----开始证书-----

-----结束证书-----

-----开始证书-----

-----结束证书-----

-----开始证书-----

-----结束证书-----

我已经了解了如何使用 .p12 文件来实现,但我现在需要使用 .pem 格式的文件来实现。这就是我使用 .p12 文件的方式

FILE *p12_file;
PKCS12 *p12_cert = NULL;
EVP_PKEY *pkey;
X509 *x509_cert;
STACK_OF(X509) *additional_certs = NULL;

p12_file = fopen("/etc/certs/chain.p12", "rb");

d2i_PKCS12_fp(p12_file, &p12_cert);
fclose(p12_file);
int result = PKCS12_parse(p12_cert, "password", &pkey, &x509_cert, &additional_certs);

unsigned char * certificate;
int len_certificate = i2d_X509(x509_cert,&certificate);

 X509* x509_subCA2 = sk_X509_value(additional_certs,0);
unsigned char * subCA2;
int len_subCA2 = i2d_X509(x509_subCA2,&subCA2);

 X509* x509subCA1 = sk_X509_value(additional_certs,0);
unsigned char * sUbCA1;
int len_subCA1 = i2d_X509(x509_subCA1,&sUbCA1);

我很感激帮助。

谢谢!

标签: copensslcertificate

解决方案


推荐阅读