Openssl
執行各種命令時出現“加密失敗”錯誤
我發現一些命令(現在
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
結果相同的輸出
執行 :
ldd $( which dig) | grep crypto
,這將顯示您目前正在使用的加密庫。如果這與預期的不同(通常是 openssl),那麼您幾乎沒有選擇:
- 刪除乾擾的庫
- 修改 LDD_LIBARY_PATH 環境變數,並指向 openssl lib 位置
- 通過從 /etc/ld.so.conf 和 /etc/ld.so.cond.d/* 文件中刪除不需要的庫位置來解決問題。之後跑
ldconfig
。警告:這很可能會破壞使用它的應用程序。