TLS1.3正式対応!OpenSSL 1.1.1 (LTS) インストールメモ

Linux
Linux
スポンサーリンク

2018年9月11日、OpenSSL1.1.1 がリリース されました。このバージョンは LTS(長期サポート)バージョンのため、少なくとも5年間はサポートされるそうです。また、なんといっても OpenSSL1.1.1 の注目は先月発行された RFC8446(TLS1.3の標準仕様)に対応したことです。いよいよ TLS1.3 の普及が始まりそうですね。そこで今回は、CentOS7.5 (1804) に OpenSSL 1.1.1(LTS)をインストールする手順をメモしておきました。

 
(関連記事)2018年10月23日 Apache httpd サーバーが TLS1.3 に対応しました!
Apache httpd 2.4.37(TLS1.3対応)+ HTTP/2 + Brotli インストールメモ

開発ツールのインストール

OpenSSL 1.1.1 はソースからコンパイルしますので、基本コマンドと開発ツールをインストールしておきましょう。

yum -y groupinstall base
yum -y groupinstall development
yum -y update

OpenSSL 1.1.1 のインストール

OpenSSLのコンパイルに必要なパッケージをインストールしておきます。

yum -y install zlib-devel
yum -y install perl-core

OpenSSL 1.1.1のインストール

cd /usr/local/src/
wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
tar xvzf openssl-1.1.1.tar.gz
cd openssl-1.1.1/
./config --prefix=/usr/local/openssl-1.1.1 shared zlib
make depend
make
make test
make install

OpenSSL1.1.1 のライブラリにパスを通しておきます。

echo /usr/local/openssl-1.1.1/lib > /etc/ld.so.conf.d/openssl111.conf
ldconfig

下記のコマンドで OpenSSL が TLS1.3 に対応していることを確認できます。(以下は TLS1.3 が対応している暗号スイートです)

/usr/local/openssl-1.1.1/bin/openssl ciphers -v TLSv1.3
 
TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD

動作確認

せっかくなので openssl の組み込みWEBサーバーを使って、ブラウザからの接続を確認してみましょう。

自己署名のSSLサーバー証明書の作成

まず自己署名の証明書を作成します。

秘密鍵の作成

openssl ecparam -name prime256v1 -genkey -out server.key

CSR(証明書署名要求)の作成(入力するのは「JP」の1箇所だけです。あとは空エンターでOKです)

openssl req -new -key server.key > server.csr
 
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:<空エンター>
Locality Name (eg, city) [Default City]:<空エンター>
Organization Name (eg, company) [Default Company Ltd]:<空エンター>
Organizational Unit Name (eg, section) []:<空エンター>
Common Name (eg, your name or your server's hostname) []:<空エンター>
Email Address []:<空エンター>
 
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:<空エンター>
An optional company name []:<空エンター>

SSLサーバー証明書の作成

openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt

WEBサーバーの起動

以下のコマンドでWEBサーバーを起動します。「-tls1_3」オプションを指定することで TLS1.3 プロトコルでのみの接続を受け付けるようにしています。

/usr/local/openssl-1.1.1/bin/openssl \
s_server \
-tls1_3 \
-accept 443 \
-www \
-cert server.crt \
-key server.key

WEBブラウザの Firefox(62.0)でアクセスすると、自己署名証明書の警告の前に、「サポートされていないプロトコルが使用されている」旨のエラーが表示され接続できませんでした。これは Google Chrome(69.0.3497.92)でも同様のエラーが発生します。

Firefoxのエラー画面

おそらくですがこのエラーは、現在のところ Firefox や Chrome が RFC8446 の仕様に対応していないのが原因だと思われます。Firefox の開発者版(63.0b5)では、TLS1.3 で問題なく接続できますので、次期バージョンのリリースを待ちましょう。

Firefox Quantum: Developer Edition でTLS1.3接続

おわりに

各種WEBブラウザや Apache httpd などの WEBサーバーが TLS1.3(RFC8446)に対応するのも時間の問題でしょう。早く TLS1.3 が普及してくれるといいですね。

コメント

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