У меня есть сервер 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), то после восстановления OpenSSL вам придется пересобирать mod_ssl.
.Я настоятельно рекомендую обновить ваш дистрибутив, как Apache 2.2, так и OpenSSL 0.9 ОЧЕНЬ старые и почти не поддерживаются.
Если это не вариант, вам нужно будет установить заголовки dev для вашей установленной версии OpenSSL и перекомпилировать mod_ssl
против них. То есть, если вы используете Gentoo или другой дистрибутив типа "сделай сам".
В противном случае, просто подключись и обновись. В вашем случае это долго просрочено.