Назад | Перейти на главную страницу

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 обратно совместим с такой старой версией.

Между версиями OpenSSL 0.9.6 и 1.0.0 существуют некоторые несовместимые двоичные изменения в соответствии с таблица совместимости.

...

Я являюсь автором этого отчета, поэтому не стесняйтесь задавать любые вопросы в комментариях.

Нет libssl версии довольно жестко указаны; не так много гарантий совместимости ABI между версиями (отсюда и то, почему имена так специфичны).

У вас должна быть возможность установить обе версии бок о бок (на моей рабочей станции Debian установлены обе версии libssl0.9.8 и libssl1.0.0), и если вы это сделаете правильно он должен работать. Я не могу сказать, правильно ли вы это сделали, но я бы начал с удаления хитрых символических ссылок и возврата всего, что вы сделали, а затем начну с запуска ldd в двоичном файле, чтобы определить, что ему нужно, распаковать / установить нужные библиотеки, а затем перейти оттуда.