1.openssl 获取x509.pem 证书信息
#include <stdio.h>
#include <openssl/x509.h>
#include <openssl/x509v3.h>
int main()
{
BIO *b;
char *Name = NULL, *header = NULL;
unsigned char *data = NULL;
b = BIO_new_file("platform.x509.pem", "r");
while (1)
{
X509 *x;
x = PEM_read_bio_X509(b, NULL, 0, NULL);
if (x == NULL)
break;
X509_print_fp(stdout, x);
X509_NAME *subject = X509_get_subject_name(x);
printf("%lu\n", X509_get_version(x));
printf("%lu\n", X509_subject_name_hash(x));
printf("%lu\n", X509_issuer_name_hash(x));
X509_free(x);
}
BIO_free(b);
return 0;
}
使用遇到的问题
- linux编译遇到的问题:对 X509_get_version 未定义的引用
gcc openssl.cpp -lstdc++ -std=gnu11 -I …/include/ -L …/lib -lssl -lcrypto -o main
问题根因:
lib文件中的文件是libssl.so.1.1
解决方法:
使用 ln -s 为ssl和crypto创建软连接
原文链接:https://blog.csdn.net/Harith/article/details/42028119