背景
- PCI DSS 3.2では、SSLとTLS1.1は2018年6月28日までに無くさなければいけないと明示している。
- Visaは2018年2月にTLS1.1以下を無効にする主旨を発表し、各プログラミング言語に応じた移行方法を出している。
最近の流れ
- 新規でhttpsサーバを構築するならば、TLS1.2のみを有効にしておく
- TLS1.3は現在Working Draft
- TLS1.2と1.3の違い
設定
このサイトで、TLS 1.3を使えるように設定してみました。
- nginx 1.12を使っていましたが、nginxはバージョン1.13からTLS 1.3 draftに対応しているので、nginxを1.13にアップグレードしました。
- ssl関連の設定を抜粋するとこんな感じです。TLS 1.3のcipherが優先されます。
ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'TLS13-AES-128-GCM-SHA256:TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:ECDHE:!COMPLEMENTOFDEFAULT';
- ssllabsでテストをしてみましたが、TLS 1.3はドラフトなのでちゃんと認識されない模様です。FirefoxでTLS1.3のみを有効にして実験した接続できました。
軽くabでテスト。
% ab -n 5 -n 100 https://triathlon.teraren.com/
This is ApacheBench, Version 2.3 <$Revision: 1879490 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking triathlon.teraren.com (be patient).....done
Server Software: nginx/1.13.0
Server Hostname: triathlon.teraren.com
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Server Temp Key: ECDH X25519 253 bits
TLS Server Name: triathlon.teraren.com
Document Path: /
Document Length: 284282 bytes
Concurrency Level: 1
Time taken for tests: 19.852 seconds
Complete requests: 100
Failed requests: 0
Total transferred: 28472700 bytes
HTML transferred: 28428200 bytes
Requests per second: 5.04 [#/sec] (mean)
Time per request: 198.516 [ms] (mean)
Time per request: 198.516 [ms] (mean, across all concurrent requests)
Transfer rate: 1400.66 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 46 57 13.3 54 169
Processing: 88 141 47.8 121 371
Waiting: 33 39 6.3 37 63
Total: 137 198 48.8 177 444
Percentage of the requests served within a certain time (ms)
50% 177
66% 224
75% 235
80% 241
90% 256
95% 283
98% 305
99% 444
100% 444 (longest request)
TLS1.3が出てない。クライアント側のopensslが古いからかな。。
% openssl version LibreSSL 2.8.3
まとめ
- nginxをアップグレード。 1.12 -> 1.13
- TLS 1.0, TLS 1.1を無効化。TLS 1.2とTLS 1.3 draftを有効化



Comments