Как обновить OpenSSL в CentOS 6.5 / Linux / Unix из исходного кода?
Как обновить OpenSSL в CentOS 6.5?
я использовал эти команды, но ничего не происходит:
cd /usr/src
wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
tar -zxf openssl-1.0.1g.tar.gz
cd openssl-1.0.1g
./config
make
make test
make install
cd /usr/src
rm -rf openssl-1.0.1g.tar.gz
rm -rf openssl-1.0.1g
после использования этой команды, я получаю старые версии
openssl version
11 ответов:
./config --prefix=/usr --openssldir=/usr/local/openssl shared
попробуйте эту строку конфигурации вместо того, чтобы перезаписать значение по умолчанию. Он устанавливается в prefix/usr/local / ssl по умолчанию в вашей установке, когда вы оставляете префикс. Вы, наверное, "/usr/местные/протокол SSL/ОГРН/OpenSSL и" вместо того, чтобы перезаписать /usr/Бен/в OpenSSL. Вы также можете использовать /usr/local для префикса вместо этого, но вам нужно будет соответствующим образом настроить свой путь, если он еще не находится на вашем пути. Вот это установить документация:
$ ./config $ make $ make test $ make install [If any of these steps fails, see section Installation in Detail below.] This will build and install OpenSSL in the default location, which is (for historical reasons) /usr/local/ssl. If you want to install it anywhere else, run config like this: $ ./config --prefix=/usr/local --openssldir=/usr/local/openssl
https://github.com/openssl/openssl/blob/master/INSTALL http://heartbleed.com/
исправления
heartbleed
уязвимость была возвращена в1.0.1e-16
от Red Hat для Enterprise Linux посмотреть, и поэтому это официальное исправление, которое CentOS отправляет.замена OpenSSL на последнюю версию из upstream (т. е. 1.0.1 g) рискует внести изменения в функциональность, которые могут нарушить совместимость с приложениями/клиентами непредсказуемыми способами, заставит вашу систему отклониться от RHEL и поставит вас на крючок для лично поддерживая будущие обновления этого пакета. Замена openssl с помощью простого make config & & make && make install означает, что вы также теряете возможность использовать rpm для управления этим пакетом и выполнения запросов к нему (например, проверка всех файлов присутствует и не были изменены или были изменены разрешения без обновления базы данных RPM).
Я бы также предупредил, что криптографическое программное обеспечение может быть чрезвычайно чувствительным к, казалось бы, незначительным вещам, таким как параметры компилятора, и если вы не знаете, что вы делаете, вы можете ввести уязвимости в вашей локальной установке.
вручную скомпилировать OpenSSL выполните следующие действия:
$ cd /usr/src $ wget https://www.openssl.org/source/openssl-1.0.1g.tar.gz -O openssl-1.0.1g.tar.gz $ tar -zxf openssl-1.0.1g.tar.gz $ cd openssl-1.0.1g $ ./config $ make $ make test $ make install $ openssl version
если он показывает старую версию, выполните следующие действия.
$ mv /usr/bin/openssl /root/ $ ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl openssl version OpenSSL 1.0.1g 7 Apr 2014
http://olaitanmayowa.com/heartbleed-how-to-upgrade-openssl-in-centos/
sudo yum update openssl
все, что вам нужно.это приведет вас к
openssl-1.0.1e-16.el6_5.7
.вам нужно перезапустить Apache после обновления. Или еще лучше, перезагрузите окно, если это возможно, чтобы все приложения, использующие OpenSSL, загрузили новую версию.
единственное, что вам нужно сделать, это выполнить
yum update
.он будет автоматически загружать и обновлять backported версию
openssl-1.0.1e-16.el6_5.7
который был исправлен RedHat с отключенным сердцебиением.чтобы проверить обновление, просто проверьте список изменений:
# rpm -q --changelog openssl-1.0.1e | grep -B 1 CVE-2014-0160
вы должны увидеть следующее:* Mon Apr 07 2014 Tomáš Mráz <tmraz@redhat.com> 1.0.1e-16.7 - fix CVE-2014-0160 - information disclosure in TLS heartbeat extension
убедитесь, что вы перезагрузили сервер, потому что важные службы, такие как Apache и SSH используют openSSL.
мой подход был:
openssl version OpenSSL 1.0.1e 11 Feb 2013 wget https://www.openssl.org/source/openssl-1.0.2a.tar.gz wget http://www.linuxfromscratch.org/patches/blfs/svn/openssl-1.0.2a-fix_parallel_build-1.patch tar xzf openssl-1.0.2a.tar.gz cd openssl-1.0.2a patch -Np1 -i ../openssl-1.0.2a-fix_parallel_build-1.patch ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib shared zlib-dynamic make make install openssl version OpenSSL 1.0.2a 19 Mar 2015
Я согласен, что в 95% случаев, все, что вам нужно-это
sudo yum update openssl
однако, если вам нужна конкретная версия openssl или определенная функциональность, который не находится в хранилище CentOS,вам, вероятно, нужно скомпилировать из источника. Другие ответы здесь были неполными. ниже то, что сработало (в CentOS 6.9), хотя это может привести к несовместимости с установленным программным обеспечением, и не будет авто-обновление openssl.
выберите openssl версию из https://www.openssl.org/source/
- на момент написания этой статьи 1 июля 2017 года, необходимая версия была датирована 2017-Май-25 13:09: 51, openssl-1.1.0 f.tar.ГЗ
- скопируйте нужную ссылку и используйте ниже, в нашем случае (https://www.openssl.org/source/openssl-1.1.0f.tar.gz)
войдите в систему как root:
cd /usr/local/src/ # OPTIONALLY CHANGE openssl-1.1.0f.tar.gz to the version which you want wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz sha256sum openssl-1.1.0f.tar.gz #confirm this matches the published hash tar -zxf openssl-1.1.0f.tar.gz cd /usr/local/src/openssl-1.1.0f ./config --prefix=/usr/local --openssldir=/usr/local/openssl make make test make install export LD_LIBRARY_PATH=/usr/local/lib64 #make export permanent echo "export LD_LIBRARY_PATH=/usr/local/lib64" > /etc/profile.d/ld_library_path.sh chmod ugo+x /etc/profile.d/ld_library_path.sh openssl version #confirm it works #recommended reboot here openssl version #confirm it works after reboot
вы должны заменить старый двоичный файл OpenSSL на новый через символическую ссылку:
sudo ln -sf /usr/local/ssl/bin/openssl `which openssl`
помните, что после этой процедуры вы должны перезагрузить сервер или перезапустить все сервисы, связанные с OpenSSL.
rpm -qa openssl yum clean all && yum update "openssl*" lsof -n | grep ssl | grep DEL cd /usr/src wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz tar -zxf openssl-1.0.1g.tar.gz cd openssl-1.0.1g ./config --prefix=/usr --openssldir=/usr/local/openssl shared ./config make make test make install cd /usr/src rm -rf openssl-1.0.1g.tar.gz rm -rf openssl-1.0.1g
и
openssl version
легко! вы загружаете двоичный файл?. загрузите последний пакет rpm openssl-1.0.1 e-30.el6.архитектуру x86_64 проверьте, какая была текущая версия с помощью rpm-q openssl. если это старше, то сделайте rpm-U openssl-1.0.1 e-30.el6.архитектуру x86_64 . если yum настроен, обновите этот пакет в репо и сделайте обновление Yum openssl если ваше РЕПО в RHN сделать просто ням обновление openssl-1.0.1 g очень старый и valnuarable
вы также можете проверить локальный журнал изменений, чтобы проверить, исправлен ли OpenSSL от уязвимости с помощью следующей команды:
rpm -q --changelog openssl | grep CVE-2014-0224
Если результат не возвращается, то вы должны исправить OpenSSL.
http://www.liquidweb.com/kb/update-and-patch-openssl-for-the-ccs-injection-vulnerability/