1.等同于使用: openssl x509 -in "cer_path" -inform DER -out "save_path" -outform PEM
2.代码如下:cerFilePath是cer文件;cer文件是csr文件请求后获得。
bool MakePemSSL(const char* cerFilePath, const char* savePemFilePath) {
int ret = 0;
X509 *x509 = NULL;
FILE *cerFile = NULL, *pemFile = NULL;
cerFile = fopen(cerFilePath, "rb");
if (cerFile == NULL) {
fprintf(stderr, "MakeLocalPemSSL fopen cerFilePath err \n");
goto free_all;
}
pemFile = fopen(savePemFilePath, "w+");
if (pemFile == NULL) {
fprintf(stderr, "MakeLocalPemSSL fopen savePemFilePath err \n");
goto free_all;
}
x509 = d2i_X509_fp(cerFile, NULL);
if (x509 == NULL) {
fprintf(stderr, "MakeLocalPemSSL failed to parse to X509 from cerFile \n");
goto free_all;
}
ret = PEM_write_X509(pemFile, x509);
if (ret != 1) {
fprintf(stderr, "MakeLocalPemSSL failed to PEM_write_X509 \n");
goto free_all;
}
free_all:
if (cerFile) fclose(cerFile);
if (pemFile) fclose(pemFile);
return (ret == 1);
}
以上。
《C++ OpenSSL 之一:编译和使用》
《C++ OpenSSL 之二:生成RSA文件》
《C++ OpenSSL 之三:生成CSR文件》
《C++ OpenSSL 之四:CER转换为PEM》
《C++ OpenSSL 之五:生成P12文件》
原文链接: https://www.cnblogs.com/chevin/p/11041763.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/296977
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!