将自签名证书添加到共享库C ++库

时间:2019-07-02 19:15:40

标签: c++ cmake ssl-certificate shared-libraries poco-libraries

我需要将.pem格式的自定义自签名证书添加到.so库。在我们公司中,我们使用c ++库作为android / iOS应用和内部网络服务器之间的层。它使用poco格式化请求并通过网络发送http请求。现在我们需要切换到https来设置poco的SSLManager。需要使用我们的自签名证书进行配置。为此,我要做类似this的事情。

我的问题是我需要在.so lib中打包.pem格式的证书。并从该库中的类访问该证书。证书通过这样的路径寻址

Poco::Net::Context::Ptr ptrContext = new Poco::Net::Context(Poco::Net::Context::CLIENT_USE, "", "", "rootcert.pem", Poco::Net::Context::VERIFY_STRICT, 9, false, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH");

详细信息here

我认为我在cmake中通过以下方式正确地向.so添加了证书:

file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/rootcert.pem DESTINATION ${CMAKE_CURRENT_BINARY_DIR})

那我该如何用路径解决呢?谢谢

1 个答案:

答案 0 :(得分:0)

包含.pem文件的编译文件,例如:

char* pem="-----BEGIN RSA PRIVATE KEY----- .. . . . . . -----END RSA PRIVATE KEY----- "

gcc -c -Wall -Werror -fpic examplePem.c
gcc -shared -o pem.so examplePem.o

您可以加载so文件,然后简单地访问pem变量。