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

Могу ли я обновить версию OpenSSL, используемую apache, без перекомпиляции сервера, а просто mod_ssl?

У меня есть сервер Apache на машине Unix:

Apache/2.2.29 (Unix) OpenSSL/0.9.8zg

Я хочу обновить версию OpenSSL до 1.0.2, которая в настоящее время установлена ​​в моей системе:

machine:/ user$ openssl version
OpenSSL 1.0.2d 9 Jul 2015

Могу ли я сделать это без перекомпиляции всего сервера? Мне нужно перекомпилировать mod_ssl только когда он загружен внутрь httpd.conf с участием LoadModule?:

LoadModule ssl_module modules/mod_ssl.so

Как я могу это сделать?

В mod_ssl.so библиотека динамически связана с OpenSSL:

$ ldd mod_ssl.so | egrep 'lib(ssl|crypto)'
    libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f23f7209000)
    libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f23f6e26000)

Пока ваше обновление OpenSSL не меняет путь к библиотеке, все, что вам нужно сделать, это обновить OpenSSL, а затем перезапустить Apache, чтобы загрузить новую библиотеку OpenSSL. Я считаю, что последний раз OpenSSL изменял пути к библиотекам в версии 1.0.0, поэтому, если вы обновляетесь с 1.0.0 или более поздней версии, все должно быть в порядке. Если вы обновляете более старую версию (например, 0.9.8), вам нужно будет пересобрать mod_ssl после пересборки OpenSSL.

Я настоятельно рекомендую обновить ваш дистрибутив, и Apache 2.2, и OpenSSL 0.9 ОЧЕНЬ, ОЧЕНЬ, ОЧЕНЬ старые и почти не поддерживаются.

Если это не вариант, вам нужно будет установить заголовки разработчика для установленной версии OpenSSL и перекомпилировать mod_ssl против них. То есть, если вы используете Gentoo или другой дистрибутив «сделай сам».

В противном случае, просто поднимитесь и обновитесь. В вашем случае это СРОЧНО просрочено.