проблема с openssl при установке apache 2.4.23

Вопрос или проблема

Я пытаюсь установить apache2.4.23 на centos 6.8 и получаю это:

ab.c: В функции 'main':
ab.c:2398: предупреждение: неявное объявление функции 'SSLv2_client_method'
ab.c:2398: предупреждение: присваивание делает указатель из целого числа без приведения
ab.c:2412: предупреждение: 'TLSv1_1_client_method' устарел (объявлен в /usr/local/include/openssl/ssl.h:1604)
ab.c:2414: предупреждение: 'TLSv1_2_client_method' устарел (объявлен в /usr/local/include/openssl/ssl.h:1610)
ab.c:2417: предупреждение: 'TLSv1_client_method' устарел (объявлен в /usr/local/include/openssl/ssl.h:1598)
ab.c:2468: предупреждение: неявное объявление функции 'CRYPTO_malloc_init'
/usr/share/apr-1/build/libtool --silent --mode=link gcc -std=gnu99  -g -O2 -pthread   -L/opt/httpd-2.4.25/lib -lssl -lcrypto -lrt -lcrypt -lpthread  \
                 -o ab  ab.lo      /usr/lib64/libaprutil-1.la -ldb-4.7 -lexpat -ldb-4.7 /usr/lib/libapr-1.la -lrt -lcrypt -lpthread -lm
ab.o: В функции `main':
/opt/httpd-2.4.25/support/ab.c:2468: неопределенная ссылка на `CRYPTO_malloc_init'
/opt/httpd-2.4.25/support/ab.c:2398: неопределенная ссылка на `SSLv2_client_method'
collect2: ld вернул 1 статус выхода
make[2]: *** [ab] Ошибка 1
make[2]: выход из директории « /opt/httpd-2.4.25/support »
make[1]: *** [all-recursive] Ошибка 1
make[1]: выход из директории « /opt/httpd-2.4.25/support »
make: *** [all-recursive] Ошибка 

Я попробовал установить openssl 1.1.0 и перегенерировать установку apache с помощью:

./configure --enable-layout=admin --enable-mpms-shared=all  --with-ssl=/usr/local/bin/openssl

Все еще получаю ту же проблему, есть идеи?

После прочтения большого количества документации я обнаружил, что проблема была в версии openssl, в моем случае я использовал openssl 1.1.x, так как когда httpd 2.4.23 был выпущен, openssl 1.1.0 все еще был бета-версией, я установил openssl 1.0.2j и скомпилировал apache с новым ssl:

./configure --with-apr=/usr/local/apr/bin --with-ssl=/usr/local/ssl/bin/

Ответ или решение

При установке Apache 2.4.23 на CentOS 6.8 многие пользователи сталкиваются с типичной проблемой, связанной с несовместимостью версий OpenSSL. Это может привести к множеству предупреждений и ошибок, как в приведенном вами примере. Рассмотрим, как можно решить эту проблему.

Проблема

При установке Apache версии 2.4.23 вы получаете следующие предупреждения и ошибки:

  • Несоответствие между версиями OpenSSL и Apache;
  • Использование устаревших методов, таких как SSLv2_client_method, что приводит к ошибкам компоновки, например, undefined reference to 'CRYPTO_malloc_init'.

Причины

Основной причиной этих ошибок является то, что версия OpenSSL 1.1.x на момент выхода Apache 2.4.23 была еще в бета-версии. Apache 2.4.23 ожидает более раннюю версию OpenSSL, такую как 1.0.2, которая была стабильной. Таким образом, использование неподходящей версии OpenSSL непосредственно влияет на возможности компиляции Apache.

Решение

Решение данной проблемы состоит в установке OpenSSL 1.0.2, вместо 1.1.x, и правильной настройке параметров при конфигурации Apache. Вот шаги, которые вы можете предпринять:

  1. Удалите установленную версию OpenSSL 1.1.x.
    Убедитесь, что у вас нет конфликтующих версий OpenSSL, которые могут вызвать проблемы с компиляцией.

    sudo make uninstall
  2. Скачайте и установите OpenSSL 1.0.2j.
    Вы можете скачать OpenSSL с официального сайта или использовать команду wget.

    wget https://www.openssl.org/source/openssl-1.0.2j.tar.gz
    tar -xvf openssl-1.0.2j.tar.gz
    cd openssl-1.0.2j
    ./config
    make
    sudo make install
  3. Скомпилируйте Apache с использованием корректной версии OpenSSL.

    Используйте правильные пути при конфигурации Apache:

    ./configure --with-apr=/usr/local/apr/bin --with-ssl=/usr/local/ssl/bin/ --enable-layout=admin --enable-mpms-shared=all
  4. Завершите установку Apache.

    После успешной конфигурации выполните компиляцию и установку:

    make
    sudo make install

Заключение

В результате выполнения вышеописанных шагов вы сможете успешно установить Apache 2.4.23 на CentOS 6.8, избегая ошибок, связанных с несовместимостью версий OpenSSL. Эта задача требует тщательного выполнения каждой инструкции, чтобы гарантировать стабильную работу вашего веб-сервера. Важно следить за совместимостью между версиями программного обеспечения для предотвращения подобных ситуаций в будущем.

Оцените материал
Добавить комментарий

Капча загружается...