我正在尝试修复一个现在无法连接的旧二进制文件(当然不可用的源代码......),可能是因为它使用了过时的CA列表。
但是,在运行strace时,我没有看到二进制文件试图从/ etc / ssl / certs中读取我的CA.
是否有可能将CA列表捆绑到二进制文件中?
非常感谢,
亚当
答案 0 :(得分:0)
要明确,因为你说源不可用我假设你是指一个使用OpenSSL库的自定义程序,因为名为openssl
的实用程序命令行界面程序源仍可用于上世纪的版本(并且直到1.1.0没有太大变化,即使它可能应该有变化)。
是的,当然。使用libssl(和libcrypto)的程序可以选择是将标准文件用于其信任库,还是将其指定的其他(自定义)文件(通常来自配置),或者您要求的硬编码数据或来自一些其他来源,如(安全,我们希望!)数据库,甚至根本没有信任库,如果它使用不使用证书身份验证的密码套件 - 匿名,PSK或SRP - 很少使用但受OpenSSL支持。
您可以在程序上尝试strings
,看看它们是否足够基本,可以在PEM中嵌入证书(可能还有其他东西) - IINM就是联想Superfish的发现方式。如果他们嵌入了二进制“DER”,那么仍然有足够的冗余可以找到它,但不是那么容易。
使用Wireshark或类似网站查看网络流量,或者如果您有权访问服务器,请检查其日志,以查看程序是否在41到49范围内发送警报以响应服务器的第一次飞行,即刚刚之后ServerHelloDone。 这肯定会表明证书问题。