OpenSSL3をソースコードからインストールする方法

2022年6月17日

前提

書くこと/書かないこと

OpenSSL3をソースコードからインストールする方法を書きます。

環境

AlmaLinux release 8.6 (Sky Tiger) ※CentOS8代替OS

さくっと

内容的にさくっとまとめるのが難しいので後回しにします。

こってりと

開発環境の準備

まずはC言語のコンパイル環境の整備から。必要な開発ツールなどをインストールします。

dnf groupinstall "Development Tools"
dnf install perl-IPC-Cmd perl-Pod-Html

OpenSSLのインストール

ソースコードの入手

次にOpenSSLのサイトから最新版のソースコードを入手します。

https://www.openssl.org/source/

この時点では3.0.3が最新版です。
openssl-3.0.3.tar.gzを右クリックしてリンクアドレスをコピーし、サーバにダウンロードします。
ちなみに/user/local/src/はソースファイルをダウンロードする際のお約束のパスです。

# cd /usr/local/src/
# wget "https://www.openssl.org/source/openssl-3.0.3.tar.gz"
--2022-06-01 20:35:26--  https://www.openssl.org/source/openssl-3.0.3.tar.gz
www.openssl.org (www.openssl.org) をDNSに問いあわせています... 184.27.21.43, 2600:140b:a800:a8e::c1e, 2600:140b:a800:ab6::c1e
www.openssl.org (www.openssl.org)|184.27.21.43|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 15058905 (14M) [application/x-gzip]
`openssl-3.0.3.tar.gz' に保存中

openssl-3.0.3.tar.g 100%[===================>]  14.36M  --.-KB/s 時間 0.1s

2022-06-01 20:35:26 (108 MB/s) - `openssl-3.0.3.tar.gz' へ保存完了 [15058905/15058905]

解凍 ~ コンフィギュレーション

tar.gzを展開してconfigureします。

# tar zxvf openssl-3.0.3.tar.gz
# cd openssl-3.0.3/
# ./Configure --prefix=/usr/local/openssl shared zlib
Configuring OpenSSL version 3.0.3 for target linux-x86_64
Using os-specific seed configuration
Creating configdata.pm
Running configdata.pm
Creating Makefile.in
Creating Makefile

**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   If you encounter a problem while building, please open an    ***
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm --dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   'Troubleshooting' section in the INSTALL.md file first)      ***
***                                                                ***
**********************************************************************

無事にconfigureできました。

なお、私が最初に実施したときには下記のエラーが出てしまったので、perl-IPC-Cmdをインストールしてから再実行しています(この記事では考慮済みです)。

# ./Configure --prefix=/usr/local/openssl shared zlib
Can't locate IPC/Cmd.pm in @INC (you may need to install the IPC::Cmd module) (@INC contains: /usr/local/src/openssl/util/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 /usr/local/src/openssl/external/perl/Text-Template-1.56/lib) at /usr/local/src/openssl/util/perl/OpenSSL/config.pm line 18.

ビルド ~ インストール

続いてビルドです。マシンスペックによっては結構な時間がかかりますが、コマンドは単純です。

# make

もし長時間画面の前で待てない場合はバックグラウンド実行にする手もあります(非力なマシンだと数十分かかります)。下記のコマンドだと標準出力、標準エラーに表示されるメッセージがホームディレクトリ直下のログファイルに書き出されます。

# make -k > ~/make.log 2>&1 &

最後にインストールです。これもやることは単純ですが少し時間がかかるのでバックグランドで実行します。

# make install > ~/make_install.log 2>&1 &

なお、私が最初に実施したときには下記のエラーが出てしまったので、perl-Pod-Htmlをインストールしてから再実行しています(この記事では考慮済みです)。

Can't locate Pod/Html.pm in @INC (you may need to install the Pod::Html module) (@INC contains: . /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./util/mkpod2html.pl line 14.
BEGIN failed--compilation aborted at ./util/mkpod2html.pl line 14.
make: *** [Makefile:26474: doc/html/man1/CA.pl.html] エラー 2

パスを通す

次のコマンドを実行して共有ライブラリにパスを通し、依存関係を更新します。

# echo /usr/local/openssl/lib64 > /etc/ld.so.conf.d/openssl.conf
# ldconfig

バージョン確認

インストールされたバージョンを確認します。

# /usr/local/openssl/bin/openssl version
OpenSSL 3.0.3 3 May 2022 (Library: OpenSSL 3.0.3 3 May 2022)

3.0.3がインストールされたことが確認できました。