わーい。

といってもとりあえずこのブログだけなのだが(お察しください)。

去年TLS1.3の仕様が確定して、これに対応したOpenSSL1.1.1の正式版がリリースされ、最近やっとOSの安定版に取り込まれ始めたっぽい(2019/01/09現在)。Debianにはまだtestingにしか来てないようだが、Ubuntu 18.10(cosmic)には来ているので、これをベースにすれば何も考えずTLS1.3が使える。意味があるのかないのかで言うと、まったく無いと言ってよい。

公式のnginxイメージはDebainベースなので、これを ubuntu:cosmic ベースに変えたらそのままビルドできて動いた(雑)。あとは ssl_protocols TLSv1.3 TLSv1.2; としたらOKだった。

https://gist.github.com/naotaco/0b55e6297a11e99366c6a2ec96d11136

18.10はLTSではないのだが、まあdockerならいつでも新しいバージョンに乗り換えられるしいけるでしょ(慢心)。

定期的にイメージをリビルドしてコンテナ内のパッケージを更新しましょう。あとTLSの暗号スイートまわりの設定は適切にしましょう(プロフェッショナルSSL/TLSを読むとよさそう)。

その他参考

nginx + docker + Let’s Encrypt で割とはまった。Let’s Encryptは1時間に5回証明書の発行に失敗すると(DNS引けないとかドメイン確認用のファイルにアクセスできないなど)するとしばらく発行できなくなったりする。

docker内のnginxでLet’s Encryptから証明書を取得する: https://medium.com/@pentacent/nginx-and-lets-encrypt-with-docker-in-less-than-5-minutes-b4b8a60d3a71

あとついでにIPv6にも対応してるはず。