Linux
libssl 和 libcrypto 向後兼容?
我有一個需要 libssl.so.0.9.6 和 libcrypto.so.0.9.6 的舊伺服器應用程序。
我的問題是我的系統上目前有 libssl.so.1.0.0a 和 libcrypto.so.1.0.0a。我嘗試對新庫進行符號連結,它在啟動伺服器應用程序時讓我克服了錯誤,但是一旦應用程序收到新連接,它就會立即崩潰。但是,它沒有給出任何關於原因的錯誤。我還嘗試從舊的 RPM 中提取這些庫並將它們放在 linux 伺服器上的正確位置,我會遇到同樣的問題。
我禁用了 SELinux 並禁用了 iptables。我正確轉發了埠,但是這個問題一直存在。在另一台 linux 伺服器上,我正在執行一個舊的 CentOS 版本,需要 openssl 版本,它執行沒有問題。
我想我已經把它縮小到了 openssl 版本的問題。有誰知道為什麼會發生這種情況,或者 openssl 是否向後兼容這樣的舊版本。
不,
libssl
版本的規定非常嚴格;版本之間的 ABI 兼容性沒有太多保證(因此 sonames 如此具體)。您應該能夠同時安裝這兩個版本(我在我的 Debian 工作站上同時安裝了 libssl0.9.8 和 libssl1.0.0),如果您正確安裝它應該可以工作。我不知道你是否正確地完成了它,但我會首先刪除狡猾的符號連結並恢復你所做的任何其他事情,然後首先
ldd
在二進製文件上執行以確定它需要什麼,解壓縮/安裝庫它需要,然後從那裡開始。