OpenSSL は、コンピューター ネットワーク上の安全な通信のための SSL および TLS プロトコルを実装する広く使用されている暗号化ライブラリです。 OpenSSL は、Apache Web サーバー、PHP、Postfix などの多くのプログラムで使用されています。 OpenSSL は、暗号 (AES, Blowfish, DES, IDEA など)、暗号ハッシュ関数 (MD5, MD4, SHA-1, SHA-2 など)、公開鍵暗号 (RSA, DSA, Diffie-Hellman key exchange) など、さまざまな暗号アルゴリズムのサポートを提供します。

このチュートリアルでは、Ubuntu 18.04 および CentOS 7.6 サーバーに、最新の安定版 OpenSSL をソースからインストールする方法を順を追って説明します。

何をするのか?

  1. Install Dependencies
  2. Download OpenSSL Source Code
  3. Install OpenSSL
    1. Compile and OpenSSL をインストールする
    2. リンクライブラリの設定
    3. OpenSSL バイナリの設定
  4. テスト

ステップ 1 – テスト。 依存関係のインストール

最初のステップです。 OpenSSLライブラリをソースからコンパイルする前に、Ubuntuでは「build-essential」パッケージ、CentOSでは「Development Tools」パッケージを含むいくつかのパッケージの依存関係をインストールします。

Ubuntu

の場合

Ubuntuリポジトリを更新し、以下のaptコマンドを使用してソフトウェアコンパイルのためのパッケージの依存関係をインストールします。

yum group install 'Development Tools'
yum install perl-core zlib-devel -y

インストールが完了したら、次のステップに進みます。

Step 2 – OpenSSLのダウンロード

このチュートリアルでは、最新の安定版OpenSSL – OpenSSL 1.0.2o をインストールする予定です。 OpenSSL サイトからソース コードをダウンロードできます。

‘/usr/local/src’ ディレクトリに移動し、wget を使用して OpenSSL ソース コードをダウンロードします。

cd /usr/local/src/
wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz

次に openssl.tar.gz ファイルを展開し、’openssl’ ディレクトリに移動します。

tar -xf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o

OpenSSL ソース コードはダウンロードされました。

ステップ 3 – OpenSSL

システムにカスタム OpenSSL バージョンをインストールする前に、以下のコマンドを使ってインストール済みバージョンをチェックしましょう。

openssl version -a

以下は Ubuntu での結果です:

そしてこれは CentOS での結果です:

「1.1.0g」バージョンを最新の安定版 1.0 に交換することとします。0.2o.

新しいバージョンの OpenSSL を特定のディレクトリ ‘/usr/local/ssl’ にインストールし、OpenSSL のリンク ライブラリを有効にして、OpenSSL の新しいバイナリ PATH を構成します。

OpenSSLのインストールとコンパイル

OpenSSLをダウンロードしたディレクトリ’/usr/local/src/openssl’に移動します。

cd /usr/local/src/openssl-1.0.2o

以下のコマンドでOpenSSLの設定とコンパイルができます。

./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make
make test

OpenSSLのコンパイル処理を待ちます。

  • –prefix and –openssldir = OpenSSLの出力パスを設定します。
  • shared = shared libraryを強制作成する。
  • zlib = zlibライブラリを使った圧縮を有効にします。

コンパイル処理が完了したら、以下のコマンドでOpenSSLをインストールします。

make install

OpenSSL は ‘/usr/local/ssl’ ディレクトリにインストールされます。

リンクライブラリの設定

次に OpenSSL 用共有ライブラリの設定をおこないます。 新しい OpenSSL バイナリは、’/usr/local/ssl/lib’ ディレクトリからライブラリ ファイルを読み込みます。

‘/etc/ld.so.conf.d’ ディレクトリに移動し、新しい設定ファイル ‘openssl-1.0.2o.conf’ を作成します。

cd /etc/ld.so.conf.d/
vim openssl-1.0.2o.conf

openssl library path ディレクトリを貼付けると、’openssl-1.0-2o.conf’ となります。

/usr/local/ssl/lib

保存して終了します。

次に、以下のコマンドを使用してダイナミックリンクを再ロードします。

sudo ldconfig -v

すると、「/usr/local/ssl/lib」ディレクトリにOpenSSLライブラリがロードされたことが確認されます。

Ubuntu:

CentOS:

Configure OpenSSL Binary

openssl binary ‘/usr/bin/openssl or /bin/openssl’ を新しいバージョン ‘/usr/local/ssl/bin/openssl’ と交換することにします。

Ubuntuの18.04 LTS

Backup the binary files.

mv /usr/bin/c_rehash /usr/bin/c_rehash.BEKUP
mv /usr/bin/openssl /usr/bin/openssl.BEKUP

Edit the ‘/etc/environment’ file using vim.

vim /etc/environment

Now add the new OpenSSL binary directory as below

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin"

Save and exit.

Reload the environment file and test the new updated binary PATH.

Save the exit…

Edit the environment file.

source /etc/environment
echo $PATH

ここで、OpenSSLのバイナリファイルを再度確認します。

which openssl

以下のような結果が表示されます。6

CentOSのOpenSSLバイナリファイルをバックアップします。

mv /bin/openssl /bin/openssl.BEKUP

OpenSSL用の新しい環境ファイルを作成します。

vim /etc/profile.d/openssl.sh

以下の設定をペーストします。

#Set OPENSSL_PATHOPENSSL_PATH="/usr/local/ssl/bin"export OPENSSL_PATHPATH=$PATH:$OPENSSL_PATHexport PATH

保存して終了します。

openssl.sh ファイルを実行できるように設定します。

chmod +x /etc/profile.d/openssl.sh

OpenSSL環境を読み込み、以下のコマンドでPATHのbinディレクトリを確認します。

source /etc/profile.d/openssl.sh
echo $PATH

ここでOpenSSLファイルを確認します。

which openssl

以下のような結果になります。

ステップ4 – テスト

以下のコマンドを使用してOpenSSLの新しいバージョンをテストします。

openssl version -a

Ubuntuでの結果

CentOSでの結果

コメントを残す

メールアドレスが公開されることはありません。