我正在使用OpenSSL来验证服务器的证书。由于OpenSSL在没有任何内置根CA的情况下发货,我们必须使用我们的软件(我们静态链接OpenSSL)自行分发根CA证书。通常,执行此操作的方法是以PEM格式分发证书文件并调用SSL_CTX_load_verify_locations。C++/OpenSSL:从缓冲区而不是文件使用根CA(SSL_CTX_load_verify_locations)
但是,此功能需要文件/目录路径,并直接从文件系统读取根证书文件。我们真的希望能够将证书硬编码到我们的二进制文件中,而不是将其保存到文件系统中。
换句话说,我们真的很想拥有像SSL_CTX_load_verify_locations这样的函数,它需要X509 *而不是文件路径。
是否有这样的事情存在?还是有一种简单的方法可以将它们自己拼凑起来?我们似乎无法找到关于此的很多信息。
非常感谢您的任何建议!
什么阻止您在调用SSL_CTX_load_verify_locations之前保存磁盘上的硬编码根证书? –
没有什么可以阻止它:然而,我们是一个安全应用程序,并担心恶意干扰。特别是,如果很容易找到并覆盖我们的根证书文件,那么您可以阻止我们的任何SSLed事务。如果需要的话,我们会走这条路线,但能够将根证书编译到二进制文件本身是非常好的。 – DSII
让您的根CA硬编码比保存在文件中更安全。 –