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

Я бы также предостерег, что программное обеспечение crypto может быть чрезвычайно чувствительным к, казалось бы, незначительным вещам, таким как параметры компилятора, и если вы не знаете, что делаете, вы можете ввести уязвимости в локальную установку.


чтобы вручную скомпилировать 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.деготь.gz
  • скопируйте нужную ссылку и используйте ниже, в нашем случае (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 настроен, обновите этот пакет в репо и обновите openssl если ваше РЕПО в RHN просто yum update 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/