Libraries

libssl 和 libcrypto 向後兼容?

  • March 20, 2016

我有一個舊的伺服器應用程序,它需要libssl.so.0.9.6libcrypto.so.0.9.6.

我的問題是我目前擁有libssl.so.1.0.0alibcrypto.so.1.0.0a在我的系統上。我嘗試對新庫進行符號連結,它在啟動伺服器應用程序時讓我克服了錯誤,但是一旦應用程序收到新連接,它就會立即崩潰。但是,它沒有給出任何關於原因的錯誤。我還嘗試從舊的 RPM 中提取這些庫並將它們放在 linux 伺服器上的正確位置,我會遇到同樣的問題。

我禁用了 SELinux 並禁用了 iptables。我正確轉發了埠,但是這個問題一直存在。在另一台 linux 伺服器上,我正在執行一個舊的 CentOS 版本,需要 openssl 版本,它執行沒有問題。

我想我已經把它縮小到了 openssl 版本的問題。有誰知道為什麼會發生這種情況,或者 openssl 是否向後兼容這樣的舊版本。

不,OpenSSL 不向後兼容,並且正如您注意到的那樣,強制提供不正確版本的庫只會使您的軟體當機。

獲得正確的預期庫版本是正確的軌道。您應該檢查您的發行版以查看它們是否具有兼容性包。一些發行版具有最新的 OpenSSL 包,但它們也具有帶有舊庫的附加包,以滿足對舊庫的特定依賴關係。

根據兼容性表,OpenSSL 的 0.9.6 和 1.0.0 版本之間存在一些二進制不兼容的變化。

在此處輸入圖像描述

在此處輸入圖像描述

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