我有一台服务器可以使用OpenSSL在HTTPS上侦听。为此,我必须提供使用的证书。但是,当前的实现使用一个文件名来提供给OpenSSL API。使用OpenSSL从内存中读取证书文件而不是文件
我希望从内存中读取证书信息,这样我就不必发运证书文件。我试图谷歌,但我没有拿出任何选择。
可以吗?如果是这样,我如何从内存中读取证书文件而不是使用OpenSSL的文件?
编辑:下面是从评论的问题移动。
// 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
}
“我希望从内存中读取证书信息,以便我不必装运证书文件” - 您能澄清一下吗?不确定你在这里的意思。代码在哪里首先得到证书? – 2010-09-28 06:01:51
我现在有了我的证书文件。服务器必须使用它们。通常的做法是向OpenSSL提供证书文件的文件名。 OpenSSL会在内部处理剩下的事情。但我无法直接发送证书文件。我必须将它们硬编码到源代码中。这是要求。所以,我正在考虑在内存缓冲区中拥有证书的选项,并以某种方式使OpenSSL使用该证书信息。 – Karthik 2010-09-28 06:25:14
你可以用一些示例代码来指定你在做什么吗?证书SSL上下文可以从内存中创建,但如果您可以通过一些代码分享您想要实现的内容,这将会很有帮助。 – 2010-09-28 07:00:48