在没有文件系统的嵌入式系统上使用 OpenSSL 打开 X509 证书

Open X509 certificate with OpenSSL on embedded system without file system

我正在为我的公司做规范,我遇到了一个严重的问题:One of our supported embedded system does not have any file system.

是的,如果出现 fopen 或任何 I/O,系统将重新启动。

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

那么,如何在 OpenSSL 中加载证书?我在互联网上看到过几个示例,人们生成它然后将其写入文件,但我不能那样做。这是强制性的吗?

谢谢

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

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

或者,如果您希望以 ASCII 可打印 PEM 格式存储数据,您可以使用 PEM_read_bio_X509() 从内存 BIO 加载证书(参见 BIO_new_mem_buf()) - 这又可以从一些内存中的 "const" 数据中获取证书: 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 那么只需使用上面创建的 X509 对象调用 SSL_CTX_use_certificate()。