CentOS7.x で、httpsの「TLSv1.3」を。openssl 1.1.1、php7.4.x、nginx 1.20

TLS v1.3 にするために、openssl 1.1.1をソースインストール。
phpとnginxを新しいopenssslに対応させたときの覚え書きです。

関連記事

httpd(apache) openssl 1.1.1、TLSv1.3対応 (CentOS7)
CentOS7にて、opensslの最新版を入れて、httpd(apache)をTLSv1.3に対応するメモ書きです。 参考記事 nginx、phpの関係は、上記の記事を・・・ openssl 1.1.1kインストール ...

↑ httpd(apache) の設定は、こちらに、

openssl 1.1.1

yum で最初から入っていたバージョンは、

# /usr/bin/openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

↑ これを、最新の、openssl 1.1.1kにします。
ソースインストールしか手段はありません・・・

# cd /usr/local/src/
# wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
# tar xzvf openssl-1.1.1k.tar.gz 
# cd openssl-1.1.1k
# ./config --prefix=/usr/local/openssl shared zlib

↑「prefix」でインストールディレクトリを指定します。
指定をしなくてもphp、nginxとも、構築が可能かと思います。
指定した方が、面倒ではないので・・・

# make
# make install

↑コンパイルして、インストールをします。

vi /etc/ld.so.conf.d/openssl-1.1.conf
/usr/local/openssl/lib/

↑上記、1行を入れて保存をします。

# ldconfig
# ldconfig -p |grep openssl
        libssl.so.1.1 (libc6,x86-64) => /usr/local/openssl/lib/libssl.so.1.1
        libssl.so (libc6,x86-64) => /usr/local/openssl/lib/libssl.so
        libevent_openssl-2.0.so.5 (libc6,x86-64) => /lib64/libevent_openssl-2.0.so.5
        libcrypto.so.1.1 (libc6,x86-64) => /usr/local/openssl/lib/libcrypto.so.1.1
        libcrypto.so (libc6,x86-64) => /usr/local/openssl/lib/libcrypto.so

↑ライブラリの設定ができました。

# cd
# vi .bashrc

export PATH="/usr/local/openssl/bin/:$PATH";

↑「export」の行を加えます。
「openssl」コマンドで、パスが通るようにします。

# which openssl
/usr/local/openssl/bin/openssl
# openssl version
OpenSSL 1.1.1k  XX Xxx 2021

↑ 新しいバージョンが認識されました。

Nginx with openssl 1.1.1

nginx を openssl 1.1.1k および、TLS v1.3 に対応させます。

# wget http://nginx.org/download/nginx-1.20.0.tar.gz

# tar xzvf nginx-1.20.0.tar.gz
# cd nginx-1.20.0/

# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_stub_status_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-openssl=/usr/local/src/openssl-1.1.1k

↑最後の「–with-openssl=/usr/local/src/openssl-1.1.1k」が新しく加わりました。
その他、必要/不必要、及び、変更があるかと思います。

# make
# make install

↑インストールできました。

# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.20.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
built with OpenSSL 1.1.1k  XX Xxx 2021
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_stub_status_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-openssl=/usr/local/src/openssl-1.1.1k

↑ 新しいopensslに対応しました。

# ssl_protocols TLSv1.2;
 ↓
# ssl_protocols TLSv1.2 TLSv1.3;

↑ Nginxの設定ファイルに「TLSv1.3」を加えます。

複数サーバーを設定している場合、上記は、該当のサーバーのセッテイングだけではなく、default(最初の)設定も、変更しないと有効になりません。

TLS Checker - Instant Results
Does your server or CDN support the latest TLS 1.3? Check your SSL/TLS setup now!

↑ TLS v 1.3のチェックサイト

↑ 認識されました。

SSL Server Test (Powered by Qualys SSL Labs)
A comprehensive free SSL test for your public web servers.

でも、チェックができます。

また、該当サイトを開き、Chromeブラウザ、右上のニューから「その他のツール」「デベロッパーツール」を選び、「Security」タグを選びます。

↑ 右下に「TLS 1.3」と出ていればOK。

php 7.4.x with openssl 1.1.1

# wget https://www.php.net/distributions/php-7.4.19.tar.gz
# tar xzvf php-7.4.19.tar.gz
# cd php-7.4.19
# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
# export OPENSSL_CFLAGS=-I/usr/local/openssl/include/
# export OPENSSL_LIBS=-L/usr/local/openssl/lib/

↑コンパイルを通すための設定です。後半2行は、openssl関係になります。

# ./configure --with-apxs2=/usr/local/apache2/bin/apxs -with-mysqli --with-pdo-mysql --enable-mbstring --enable-pcntl --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-ftp --enable-gd --with-jpeg --with-webp --with-xpm --with-zlib --with-zip --with-snmp --enable-sockets --with-freetype --enable-cgi --with-curl --enable-intl --with-gettext --with-openssl --enable-bcmath --enable-exif

↑configureは、openssl 1.1.1にしたことによる変更点はないです。
前述の環境変数が大事です。

# make
# make install
# systemctl restart php-fpm

 

↑ openssl 1.1.1kが有効となりました。

タイトルとURLをコピーしました