Как обновить OpenSSL на centos 7.2?

Я использую centos 7.2, я буду intall Nginx-CT, и ему нужен OpenSSL 1.0.2, текущая версия следующая:

[root@i001 ~]# rpm -qa|grep openssl openssl-libs-1.0.1e-51.el7_2.4.x86_64 openssl-devel-1.0.1e-51.el7_2.4.x86_64 openssl-1.0.1e-51.el7_2.4.x86_64 

Я попытался загрузить пакет SRPM в репертуаре Fedora,

 openssl-1.0.2d-2.fc23.src.rpm 

перестроить его и установить, но что-то не так,

 [root@i001 ~]# yum update openssl Loaded plugins: axelget, langpacks No metadata available for base No metadata available for dockerrepo No metadata available for elrepo No metadata available for epel No metadata available for extras No metadata available for local No metadata available for mariadb No metadata available for nginx No metadata available for remi-php70 No metadata available for remi-php70-test No metadata available for remi-safe No metadata available for salt-2015.8 No metadata available for updates Resolving Dependencies --> Running transaction check ---> Package openssl.x86_64 1:1.0.1e-51.el7_2.4 will be updated ---> Package openssl.x86_64 1:1.0.2d-2.el7.centos will be an update --> Processing Dependency: openssl-libs(x86-64) = 1:1.0.2d-2.el7.centos for package: 1:openssl-1.0.2d-2.el7.centos.x86_64 --> Processing Dependency: libcrypto.so.10(OPENSSL_1.0.2)(64bit) for package: 1:openssl-1.0.2d-2.el7.centos.x86_64 --> Running transaction check ---> Package openssl-libs.x86_64 1:1.0.1e-51.el7_2.4 will be updated --> Processing Dependency: openssl-libs(x86-64) = 1:1.0.1e-51.el7_2.4 for package: 1:openssl-devel-1.0.1e-51.el7_2.4.x86_64 ---> Package openssl-libs.x86_64 1:1.0.2d-2.el7.centos will be an update --> Processing Dependency: crypto-policies for package: 1:openssl-libs-1.0.2d-2.el7.centos.x86_64 --> Running transaction check ---> Package openssl-devel.x86_64 1:1.0.1e-51.el7_2.4 will be updated ---> Package openssl-devel.x86_64 1:1.0.2d-2.el7.centos will be an update ---> Package openssl-libs.x86_64 1:1.0.2d-2.el7.centos will be an update --> Processing Dependency: crypto-policies for package: 1:openssl-libs-1.0.2d-2.el7.centos.x86_64 --> Finished Dependency Resolution Error: Package: 1:openssl-libs-1.0.2d-2.el7.centos.x86_64 (local) Requires: crypto-policies You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest 

Что мне делать?

Во-первых , позвольте мне сказать, что garethTheRed и Bratchley правы в том, что пакет OpenSSL, который вы пытаетесь установить, не поддерживается в CentOS, и это не рекомендуется . Попытка сделать это может вызвать проблемы в вашей системе.

Если вы абсолютно должны это установить … Насколько я понимаю, вы пытаетесь установить nginx-ct , для чего требуется OpenSSL 1.0.2 или выше из-за необходимости использования SSL_CTX_add_server_custom_ext и SSL_CTX_set_signed_cert_timestamp_list .

Использование yum

Использование пакетов из других неподдерживаемых репозиториев для вашей системы – плохая идея , о чем свидетельствуют другие. Из внешнего вида вашего yum-вывода он жалуется на зависимость от пакета криптополитических политик (требуется openssl-libs-1.0.2d-2). Вы можете сначала попытаться установить пакет криптополитики (также из репо Fedora 23).

Компиляция из источника

Как отметил Bratchley в этом комментарии , вы можете попытаться скомпилировать nginx с определенной версией OpenSSL из источника . Вот обновленные стартовые команды из этого учебника:

 # Install dependencies sudo yum install unzip gcc pcre-devel zlib-devel make golang # Grab needed files, correct as of 2016-04-08 wget https://www.openssl.org/source/openssl-1.0.2g.tar.gz wget http://nginx.org/download/nginx-1.9.14.tar.gz wget -O nginx-ct.zip https://github.com/grahamedgecombe/nginx-ct/archive/master.zip tar zxf openssl-1.0.2g.tar.gz tar zxf nginx-1.9.14.tar.gz unzip nginx-ct.zip # Build nginx with openssl 1.0.2 and CT module cd nginx-1.9.14/ ./configure --with-http_ssl_module \ --with-openssl=`realpath ../openssl-1.0.2g` \ --add-module=`realpath ../nginx-ct-master` make # NOTE: when I tried building with -jN for speedup I encountered linker issues sudo make install cd .. 

Остальные команды в этом учебнике должны быть выполнены как есть.

Последняя альтернатива

Кроме того, вы можете попробовать использовать BoringSSL, так как nginx-ct поддерживает это , хотя, похоже, вам придется строить его из источника.

В качестве альтернативного направления рассмотрите возможность установки этих инструментов внутри контейнера докера. Таким образом, вы можете использовать другой дистрибутив Linux (например, Fedora или Ubuntu) и запускать только эти два внутри изолированной среды таким образом, чтобы они не влияли на остальную часть вашей системы, применяя «нестандартные» версии этих инструментов.