Как включить функции 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», и сценарий настройки был доволен, но после сборки символ все еще не определен. Я отправил результат сборки в файл, и файлы криптографии / идеи СОСТАВЛЯЮТСЯ.

КАЖДЫЙ символ, начинающийся с EVP_*, не определен ... Они также не определены в _7 _... Так, может быть, я лаяю не на то дерево IDEA?

Итак, у меня такой вопрос - как мне включить эти EVP_* символы?


person Community    schedule 11.04.2014    source источник
comment
Вы просматривали FAQ для этого сайта? Ваш вопрос здесь, кажется, не по теме ...   -  person Deer Hunter    schedule 11.04.2014
comment
Я бы сказал, это по теме. Речь идет о сетевой безопасности, безопасности веб-приложений и криптографии.   -  person    schedule 11.04.2014


Ответы (1)


Я решил это. Проблема была простой. Эти символы действительно не определены в libssl.so (или .a). Фактически они определены в libcrypto.so. Я не получил новый libcrypto.so, потому что ...

... Новый tarball 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. Плохое моджо.

person Jerry Kaidor    schedule 12.04.2014
comment
Вы должны быть осторожны при установке вашей версии OpenSSL поверх версии OpenSSL вашего дистрибутива. Обычно вы создаете свой собственный пакет, который заменяет версию пакета в вашем дистрибутиве. Вот как это делается в Ubuntu: Заменить пакет дистрибутива пользовательским пакетом?. Извините, но я не знаю, как это сделать в Slackware. - person jww; 12.04.2014