在没有文件系统的嵌入式系统上使用 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()。
我正在为我的公司做规范,我遇到了一个严重的问题: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()。