CentOS 7.6 にソースコードから OpenSSL 1.1.1c をインストールする
現時点で CentOS7.6 標準リポジトリからインストール出来る OpenSSL のバージョンは 1.0.2k-16 でした。
| # openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
# rpm -q openssl
openssl-1.0.2k-16.el7_6.1.x86_64
|
しかし、OpenSSL の公式サイトではバージョン 1.1.1 までリリースされており、CentOS 標準リポジトリ上の OpenSSL はかなり古いことが分かります。 そこで、今回は CentOS 7.6 にソースコードから OpenSSL 1.1.1c をインストールしています。 ソースコードからのインストール方法は OpenSSL の公式 Wiki に記載されています。
依存パッケージのインストール
OpenSSL 自体をコンパイルする前に、依存パッケージをインストールしておきます。
| yum -y install gcc make perl-core zlib-devel
|
コンパイル
次に、ソースコードをダウンロードします。
| curl https://www.openssl.org/source/openssl-1.1.1c.tar.gz -o /usr/local/src/openssl-1.1.1c.tar.gz
|
コンパイルします。 環境 (スペック) に依存しますが、コンパイルが完了するまでには、しばらく時間がかかります…
| cd /usr/local/src
tar xvzf openssl-1.1.1c.tar.gz
cd openssl-1.1.1c/
./config --prefix=/usr/local/openssl-1.1.1c shared zlib
make depend
make
make test
make install
|
--prefix
で指定したパスへインストールされているはずです。
| # ls -l /usr/local/openssl-1.1.1c/
total 0
drwxr-xr-x 2 root root 37 Jun 8 14:06 bin
drwxr-xr-x 3 root root 21 Jun 8 14:06 include
drwxr-xr-x 4 root root 159 Jun 8 14:06 lib
drwxr-xr-x 4 root root 28 Jun 8 14:07 share
drwxr-xr-x 5 root root 140 Jun 8 14:06 ssl
|
システム全体の共有ライブラリへ追加する
ldconfig
を使い、コンパイルしたライブラリをシステム全体へ追加します。 まず、事前に現在の OpenSSL 関連ライブラリ (libssl) を確認しておきます。
| # ldconfig -p | grep -i libssl
libssl3.so (libc6,x86-64) => /lib64/libssl3.so
libssl.so.10 (libc6,x86-64) => /lib64/libssl.so.10
|
今回、/usr/local/openssl-1.1.1c/lib
に追加したライブラリも参照されるよう、/etc/ld.so.conf.d
配下に設定ファイルを新規作成します。
| cat << EOF > /etc/ld.so.conf.d/openssl-1.1.1c.conf
/usr/local/openssl-1.1.1c/lib
EOF
|
作成した設定ファイルを読み込み直し、共有ライブラリのキャッシュを更新する為、ldconfig
を実行します。
再度、libssl のパスを確認すると、追加したパスが表示されるはずです。
| # ldconfig -p | grep -i libssl
libssl3.so (libc6,x86-64) => /lib64/libssl3.so
libssl.so.10 (libc6,x86-64) => /lib64/libssl.so.10
libssl.so.1.1 (libc6,x86-64) => /usr/local/openssl-1.1.1c/lib/libssl.so.1.1
libssl.so (libc6,x86-64) => /usr/local/openssl-1.1.1c/lib/libssl.so
|
追加インストールした OpenSSL は実行パスに追加していない為、絶対パスで実行し、バージョンを確認してみます。 以下のように「1.1.1c」であることが確認出来れば、インストールは完了です。
| # /usr/local/openssl-1.1.1c/bin/openssl version
OpenSSL 1.1.1c 28 May 2019
|