У меня есть сервер 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 или другой дистрибутив «сделай сам».
В противном случае, просто поднимитесь и обновитесь. В вашем случае это СРОЧНО просрочено.