运行各种命令时出现“加密失败”错误

运行各种命令时出现“加密失败”错误

我发现一些命令(目前dignslookup)无论如何都会失败,输出如下:

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),您几乎没有选择:

  1. 删除干扰的lib
  2. 修改LDD_LIBARY_PATH环境变量,并指向openssl lib位置
  3. 通过从 /etc/ld.so.conf 和 /etc/ld.so.cond.d/* 文件中删除不需要的库位置来解决此问题。之后跑步ldconfig。警告:这很可能会破坏使用它的应用程序。

相关内容