Openssl

執行各種命令時出現“加密失敗”錯誤

  • January 27, 2016

我發現一些命令(現在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結果相同的輸出

執行 : ldd $( which dig) | grep crypto,這將顯示您目前正在使用的加密庫。如果這與預期的不同(通常是 openssl),那麼您幾乎沒有選擇:

  1. 刪除乾擾的庫
  2. 修改 LDD_LIBARY_PATH 環境變數,並指向 openssl lib 位置
  3. 通過從 /etc/ld.so.conf 和 /etc/ld.so.cond.d/* 文件中刪除不需要的庫位置來解決問題。之後跑ldconfig。警告:這很可能會破壞使用它的應用程序。

引用自:https://unix.stackexchange.com/questions/256333