Как обновить 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 56

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/