web-dev-qa-db-ja.com

CentOS 7.2でOpenSSLを更新する方法

私はcentos 7.2を使用しています。Nginx-CTをインストールします。OpenSSL1.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

FedoraレパートリーでSRPMパッケージをダウンロードしようとしましたが、

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

私は何をすべきか?

5
sunshine

First、- garethTheRed および Bratchley は、インストールしようとしているOpenSSLのパッケージがCentOSではサポートされていないという点で正しく、そうすることは 非推奨 です。これを実行しようとすると、システムで問題が発生する可能性があります。

絶対にこれをインストールする必要がある場合...私が理解しているように、あなたは nginx-ct をインストールしようとしています。SSL_CTX_add_server_custom_extおよびSSL_CTX_set_signed_cert_timestamp_list

Yumの使用

他の人が指摘しているように、システムでサポートされていない他のリポジトリのパッケージを使用することは悪い考えです。 yum出力の外観から、それは crypto-policiesパッケージ への依存関係について不平を言っています(openssl-libs-1.0.2d-2で必要)。まず、crypto-policiesパッケージ(同じくFedora 23リポジトリから)をインストールしてみてください。

ソースからのコンパイル

Bratchleyこのコメント で指摘したように、- ソースから特定のバージョンのOpenSSLでnginxをコンパイルする を試すことができます。以下は、そのチュートリアルから更新された開始コマンドです。

# 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 ..

そのチュートリアルの残りのコマンドは、そのまま実行できるはずです。

最後の選択肢

または、 nginx-ctがサポートしている であるため、BoringSSLを使用することもできますが、ソースからビルドする必要があるようです。

5
Ryan

別の方法として、これらのツールをDockerコンテナー内にインストールすることを検討してください。そうすることで、異なるLinuxディストリビューション(FedoraやUbuntuなど)を使用して、これらのツールの「非標準」バージョンを強制することによってシステムの残りの部分に影響を与えないように、隔離された環境内でこれら2つだけを実行できます。

1
Niels Basjes