Как включить функции EVP в openssl?
Я пытаюсь обновить свой веб-сервер до последней версии openssl с патчем heartbleed ( 1.0.1g). Я взял тарбол с openssl.org. Сказал обычный ./configure; make; make install
, Должен был сказать config shared
чтобы получить.so файл (по умолчанию он генерирует только.a). Обновлена ссылка в /usr/lib64, чтобы указывать на новый.so -
Теперь httpd не запускается со следующей жалобой:
/usr/sbin/httpd: symbol lookup error: /usr/lib64/libssl.so.1: undefined symbol: EVP_idea_cbc
nm -g | grep idea
говорит: U EVP_idea_cbc
... так что он знает о символе, но символ не определен.
Документация Openssl говорит, что они отключают IDEA по умолчанию из-за патента (срок действия которого истек в 2012 году). Они подробно рассказывают о том, как его отключить, а не о том, как его включить. Кроме того, они говорят, что он отключен по умолчанию.
Apache httpd требует символ и не запустится без него.
Я попытался сказать "config shared enable-idea", и скрипт config доволен, но после сборки символ все еще не определен. Я передал результаты сборки в файл, и файлы крипто / идеи компилируются.
КАЖДЫЙ символ, начинающийся с EVP_*
не определено... Они также не определены в libssl.a
... Так, может, я лаю не на том дереве ИДЕИ?
Так что мой вопрос становится - как мне включить эти EVP_*
символы?
1 ответ
Я решил это. Проблема была проста. Эти символы действительно не определены в libssl.so
(или же .a
). Они на самом деле определены в libcrypto.so
, Я не получал новый libcrypto.so
так как....
... Новый архив openssl устанавливает свои выходные данные по умолчанию в /usr/local/ssl
, Это настраивается, но он действительно хочет установить ВСЕ вещи ssl (включая библиотеки) в /something/something/ssl
, Так что у тебя есть /something/something/ssl/lib
, /something/something/ssl/bin
и т.п.
Итак, когда я сказал make install
, он создал /usr/local/ssl
со всеми хорошими вещами в этом. Я сделал символическую ссылку в /usr/lib64 from openssl.so.1.0.0 -> /usr/local/etc/ssl/lib/openssl.so.1.0.0.
Но я не понимал, что мне нужно сделать то же самое для libcrypto.so
, так что еще остались старые вещи.
Так что я использовал новый libssl.so
и старый libcrypto.so
, Плохой моджо