我发现一些命令(目前dig
和nslookup
)无论如何都会失败,输出如下:
19-Jan-2016 15:01:50.219 ENGINE_by_id failed (crypto failure)
19-Jan-2016 15:01:50.219 error:2606A074:engine routines:ENGINE_by_id:no such engine:eng_list.c:389:id=gost
dig: dst_lib_init: crypto failure
即使是这样的dig -h
结果,所以我猜这发生在实际命令执行开始之前
我记得这些命令曾经有用,但它们不是我经常使用的东西,所以我不能准确地查明起源
不过,我可以说我最近弄乱了 ssl 选项。特别是,我在处理 GPG 密钥时遇到问题,必须运行export OPENSSL_CONF=/etc/ssl/openssl.cnf
才能使其工作,我还发现这个问题,这似乎是相似的。但该项目与我正在做的事情无关,他们的解决方案(取消设置 OPENSSL_CONF)对我不起作用
编辑:我正在运行 Arch Linux。我对 OpenSSL 配置所做的唯一更改是运行export OPENSSL_CONF=/etc/ssl/openssl.cnf
我需要使用的gpg
,但我已经尝试取消设置
运行unset OPENSSL_CONF; dig -h
结果相同
答案1
运行 :
ldd $( which dig) | grep crypto
,这将显示您目前正在使用哪个加密库。如果这与预期的不同(通常是 openssl),您几乎没有选择:
- 删除干扰的lib
- 修改LDD_LIBARY_PATH环境变量,并指向openssl lib位置
- 通过从 /etc/ld.so.conf 和 /etc/ld.so.cond.d/* 文件中删除不需要的库位置来解决此问题。之后跑步
ldconfig
。警告:这很可能会破坏使用它的应用程序。