概要
CentOS 7では最新の7.9に上げてもOpenSSLは1.0.2k。
OpenSSL LTS版の1.1.1を使うためにビルドしてみた。
※ OpenSSL 1.1.1のrpmを作るならこちら
※ OpenSSL 1.1.1は2023/09/11にEoLを迎えたので、次のLTSである3.0.xをビルドするならこちら
※ OpenSSL 3.0.xのrpmを作るならこちら
用意したもの
vagrant up
して yum update
した CentOS 7.9
[vagrant@localhost ~]$ sudo yum update
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.riken.jp
* extras: ftp.riken.jp
* updates: ftp.riken.jp
No packages marked for update
[vagrant@localhost ~]$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[vagrant@localhost ~]$ openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
手順
必要なパッケージ追加
[vagrant@localhost ~]$ sudo yum install perl perl-Test-Simple perl-Test-Harness gcc
ビルド
- ダウンロード
公式サイトからOpenSSL 1.1.1のtgzをダウンロードする。
今回使ったのは1.1.1l[vagrant@localhost ~]$ curl -OL https://www.openssl.org/source/openssl-1.1.1l.tar.gz
- 展開
[vagrant@localhost ~]$ tar xzf openssl-1.1.1l.tar.gz
- ディレクトリ移動してビルド
[vagrant@localhost ~]$ cd openssl-1.1.1l/ [vagrant@localhost openssl-1.1.1l]$ ./config [vagrant@localhost openssl-1.1.1l]$ make
- ビルド成功したか確認
[vagrant@localhost openssl-1.1.1l]$ make test
Result: PASS
が表示されたら正常
※Can't locate Test/Harness.pm
と言われるならperl-Test-Harnessが入ってない。
※Tests=0
で何もテストが実行されない↓なら、perl-Test-Simpleが入ってない。Files=158, Tests=0, 2 wallclock secs ( 0.36 usr 0.28 sys + 0.84 cusr 0.72 csys = 2.20 CPU) Result: FAIL make[1]: *** [_tests] Error 1 make[1]: Leaving directory `/home/vagrant/openssl-1.1.1l' make: *** [tests] Error 2
- インストール
[vagrant@localhost openssl-1.1.1l]$ sudo make install
ちなみにアンインストールは
sudo make uninstall
- インストールしたパスを共有ライブラリとして追加
そのままだとlibssl.so.1.1が見つからないので、[vagrant@localhost openssl-1.1.1l]$ sudo ldconfig -p | grep libssl.so.1.1 [vagrant@localhost openssl-1.1.1l]$ ldd /usr/local/bin/openssl linux-vdso.so.1 => (0x00007ffc7d5f4000) libssl.so.1.1 => not found libcrypto.so.1.1 => not found libdl.so.2 => /lib64/libdl.so.2 (0x00007f1a19ce8000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f1a19acc000) libc.so.6 => /lib64/libc.so.6 (0x00007f1a196fe000) /lib64/ld-linux-x86-64.so.2 (0x00007f1a19eec000)
追加
[vagrant@localhost openssl-1.1.1l]$ sudo sh -c 'echo /usr/local/lib64 > /etc/ld.so.conf.d/local.conf' [vagrant@localhost openssl-1.1.1l]$ sudo ldconfig [vagrant@localhost openssl-1.1.1l]$ sudo ldconfig -p | grep libssl.so.1.1 libssl.so.1.1 (libc6,x86-64) => /usr/local/lib64/libssl.so.1.1 [vagrant@localhost openssl-1.1.1l]$ ldd /usr/local/bin/openssl linux-vdso.so.1 => (0x00007ffe7873c000) libssl.so.1.1 => /usr/local/lib64/libssl.so.1.1 (0x00007f9576947000) libcrypto.so.1.1 => /usr/local/lib64/libcrypto.so.1.1 (0x00007f957645c000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f9576258000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f957603c000) libc.so.6 => /lib64/libc.so.6 (0x00007f9575c6e000) /lib64/ld-linux-x86-64.so.2 (0x00007f9576bda000)
確認
- バージョン確認
[vagrant@localhost openssl-1.1.1l]$ /usr/local/bin/openssl version OpenSSL 1.1.1l 24 Aug 2021
※ こんな↓メッセージが出たら、ldconfigで追加し忘れてる。
/usr/local/bin/openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory