NginxでTLS1.3 動いた(OpenSSL)

昨日書いた「OpenSSLのTLS1.3対応」の続き


特に何かしたわけではないが、OpenSSLのTLS1.3対応が進んでいたのでインストールしてNginxで動かす。

ビルド

openssl
今回はインストールしてしまう。

$ git clone https://github.com/openssl/openssl.git
$ cd ./openssl
$ git log --oneline |head -n1
ef3f621 Fix man3 reference to CRYPTO_secure_used

$ ./config enable-tls1_3
$ make
$ sudo make install

nginx (openssl1.1.0対応が終わってるものなら大丈夫かと)

$ git clone https://github.com/nginx/nginx.git
$ cd ./nginx
$ ./auto/configure --with-http_ssl_module
$ make
$ make install

(conf修正と、証明書は各自)

試す

Firefox Nightlyで、about:configよりsecurity.tls.version.maxを5に設定しておく。
アクセスし、デベロッパーツールのセキュリティパネルより確認する。


この通りTLS1.3と表示される


Nginx側のログも、この通りTLS1.3であることが確認できる

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      'TLS:$ssl_protocol';
192.168.0.105 - - [19/Jan/2017:15:11:54 +0000] "GET / HTTP/1.1" 200 0 "-" TLS:TLSv1.3


実装としてはやはりまだ不安定でChrome Canaryだと通信に失敗する
ちなみに、ALPNも動いてるようでhttp2も普通に喋れている。


ベンチでも取りたかったが、abがopenssl 1.1.0でのインターフェイス変更に対応してるかちょっと怪しかったので断念。


ゆくゆくは何も意識せずTLS1.3が使われるようになるだろう。