2017-03-23 197 views
0

我这样做对我公司的规格,我面临着一个严重的问题:One of our supported embedded system does not have any file system.打开X509证书

是,如果fopen发生或任何I/O,系统重新启动。

我只工作在服务器端。证书自己生成。

所以,我怎样才能加载OpenSSL的证书?我在互联网上看到过几个例子,人们生成它然后写在一个文件中,但我不能这样做。这是强制性的吗?

谢谢

+1

[从存储器而不是使用OpenSSL的文件读取证书文件](http://stackoverflow.com/q/3810058/608639)。 – jww

回答

3

不,它不是强制性的。 OpenSSL使用X509对象来存储证书。您可以使用d2i_X509()函数从内存二进制“const”数据中加载一些原始(DER格式)证书。

https://www.openssl.org/docs/man1.1.0/crypto/d2i_X509.html

另外,如果您希望将数据存储在你可以使用PEM_read_bio_X509()来加载从MEM BIO证书的ASCII可打印PEM格式(见BIO_new_mem_buf()) - 它再次可能一些内存“常量”数据源中的证书: https://www.openssl.org/docs/man1.1.0/crypto/PEM_read_bio_X509.html https://www.openssl.org/docs/man1.1.0/crypto/BIO_new_mem_buf.html

你不说你要使用的证书是什么 - 但如果它是SSL/TLS则只需调用SSL_CTX_use_certificate()与您在上面创建的X509对象。

+0

谢谢!我跟着这个线程:http://stackoverflow.com/questions/256405/programmatically-create-x509-certificate-using-openssl和使用的功能SSL_CTX_use_certificate()与X509再次感谢您! – Render