現時点で 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
を実行します。
# 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