创建演示CA并在Linux上使用OpenSSL在C ++中使用它

时间:2017-08-08 08:03:57

标签: c++ linux openssl

我有一个项目,最后我们将使用商业SSL证书。但是在开发过程中我必须使用演示CA.我已使用以下简单命令成功创建了CA:

openssl req -out ca.pem -new -x509 -days 365

如果我在操作系统级别导入证书,我可以使用该CA签署的证书。 update-ca-certificates

我有两个问题。使用SSL的相同C ++程序也应该在debian和gentoo嵌入式linux上运行。在嵌入式Linux上,我没有导入CA的update-ca-certificates或类似工具。另一方面,如果CA可以成为没有操作系统级别导入的项目的一部分,那对我来说也会好得多。所以我的问题是,是否可以在C ++程序运行时接受/导入CA?怎么做?

我找到了以下相关的API函数:

void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *list);
void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *list);
int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *cacert);
int SSL_add_client_CA(SSL *ssl, X509 *cacert);

看来,这是针对客户端的。我也想使用服务器端和客户端证书。两者都将使用相同的CA签名。怎么做?

如果很难让C ++ OpenSSL接受自己的CA,那么如何在OS级别导入它。我找到了https://wiki.gentoo.org/wiki/Local_certificates,但这是一个非常小的嵌入式gentoo linux,没有update-ca-certificatesemerge工具。

0 个答案:

没有答案