静态链接的openssl,从哪里加载CA证书?

时间:2018-01-22 19:55:08

标签: linux openssl

我正在尝试修复一个现在无法连接的旧二进制文件(当然不可用的源代码......),可能是因为它使用了过时的CA列表。

但是,在运行strace时,我没有看到二进制文件试图从/ etc / ssl / certs中读取我的CA.

是否有可能将CA列表捆绑到二进制文件中?

非常感谢,

亚当

1 个答案:

答案 0 :(得分:0)

要明确,因为你说源不可用我假设你是指一个使用OpenSSL库的自定义程序,因为名为openssl的实用程序命令行界面程序源仍可用于上世纪的版本(并且直到1.1.0没有太大变化,即使它可能应该有变化)。

是的,当然。使用libssl(和libcrypto)的程序可以选择是将标准文件用于其信任库,还是将其指定的其他(自定义)文件(通常来自配置),或者您要求的硬编码数据或来自一些其他来源,如(安全,我们希望!)数据库,甚至根本没有信任库,如果它使用不使用证书身份验证的密码套件 - 匿名,PSK或SRP - 很少使用但受OpenSSL支持。

您可以在程序上尝试strings,看看它们是否足够基本,可以在PEM中嵌入证书(可能还有其他东西) - IINM就是联想Superfish的发现方式。如果他们嵌入了二进制“DER”,那么仍然有足够的冗余可以找到它,但不是那么容易。

使用Wireshark或类似网站查看网络流量,或者如果您有权访问服务器,请检查其日志,以查看程序是否在41到49范围内发送警报以响应服务器的第一次飞行,即刚刚之后ServerHelloDone。 这肯定会表明证书问题。