我正在使用“客户端”模式下的 stunnel 来使我的非 SSL 客户端能够连接到 SSL 服务器(它使用 FIX 协议)。
如果我禁用验证,我的设置可以正常工作,但当然我会失去 MITM 保护。
我可以手动下载 CA 的 pem 并告诉 stunnel 使用它,但是有没有办法让它依赖于 linux 的证书存储,就像我使用 Web 浏览器、wget 或 openssl 时一样?
答案1
Linux 没有像 Windows 上的 SChannel 那样的单一“内置” TLS 库,它有多个,因此它也有几个“操作系统证书存储”——OpenSSL 使用一种格式(好吧,两种),NSS 使用另一种,Java 又使用另一种。
由于 stunnel 基于 OpenSSL,因此可以将其配置为使用操作系统提供的 CA 文件(实际上就是所有 CA .pem 的连接形式):
CApath = /etc/ssl/certs/ca-certificates.crt
或“散列”目录:
CAdir = /etc/ssl/certs
路径可能因分布不同而有所差异。