【发布时间】:2011-04-18 03:01:44
【问题描述】:
我有一个使用 OpenSSL 监听 HTTPS 的服务器。为此,我必须提供要使用的证书。但是,当前实现使用要提供给 OpenSSL API 的文件名。
我希望从内存中读取证书信息,这样我就不必发送证书文件打开。我尝试谷歌,但我没有想出任何选项。
有可能吗?如果是这样,我如何从内存而不是使用 OpenSSL 的文件中读取证书文件?
编辑:以下内容已从 cmets 移至问题。
// CURRENT
void start_server()
{
const char *fileName = "cert_and_key.pem";
set_server_ssl_file(fileName);
}
set_server_ssl_file(const char *fileName)
{
//initialize context
SSL_CTX_use_certificate_file(CTX, pem, SSL_FILETYPE_PEM);
SSL_CTX_use_PrivateKey_file(CTX, pem, SSL_FILETYPE_PEM);
}
//REQUIRED
void start_server()
{
const char *cert = "--BEGIN CERTIFICATE--............";
const char *key = "--BEGIN RSA PRIVATE KEY--.......";
set_server_ssl_options(cert, key);
}
set_server_ssl_options(const char *cert, const char *key)
{
//IMPLEMENTATION REQUIRED
}
【问题讨论】:
-
“我希望从内存中读取证书信息,这样我就不必运送证书文件打开” - 你能澄清一下吗?不知道你在这里的意思。代码首先从哪里获得证书?
-
我现在有证书文件。服务器必须使用它们。通常的做法是为 OpenSSL 提供证书文件的文件名。 OpenSSL 将在内部处理剩余的事情。但是我不能直接发送证书文件。我必须将它们硬编码到源代码中。这就是要求。因此,正在寻找我在内存缓冲区中拥有证书并以某种方式使 OpenSSL 使用该证书信息的选项。
-
您能否具体说明您正在使用一些示例代码做什么?证书 SSL 上下文可以从内存中创建,但如果您可以通过一些代码分享您想要实现的目标,那将会很有帮助。
标签: c openssl certificate