はじめに
この記事は Apache Traffic Server (以下 ATS) で Hypertext Transfer Protocol Version 2 (以下 HTTP/2) を有効にする 最低限 の設定方法をまとめたものです。
Step 0: いつくかの前提
- OpenSSL 1.0.1系 もしくは 1.0.2系
- ATS v6.0.0
- ATS は
HTTP/2 over TLSのみをサポートしているので、HTTP/2 を有効にするには SSL/TLS の設定が必要です。 -
/usr/local/下にインストールしてあるとします。 - ATS のビルドとインストールについては Getting Started — Apache Traffic Server documentation を参照してください。
- デフォルトでは
records.configなどの設定ファイルは/usr/local/etc/trafficserver/下にあります。
- ATS は
Step 1: SSL/TLS の設定
ポートの設定
仮に 4443 ポートで HTTP/2 を受けたいとします。records.config の proxy.config.http.server_ports の設定に 4443:ssl を追加します。
CONFIG proxy.config.http.server_ports STRING 8080 4443:ssl
証明書の設定
仮にサーバー証明書(example.pem)と秘密鍵(example.key)を /usr/local/etc/trafficserver 下に置いているとします。
ssl_multicert.config に次の設定を追加します。
ip_dest=* ssl_cert_name=example.pem ssl_key_name=example.key
- 注1:
ssl_cert_name=,ssl_key_name=の設定値が相対パスの場合、records.configのproxy.config.ssl.server.cert.pathの設定値からの相対パスになります。デフォルトでは/usr/local/etc/trafficserverです。 - 注2: 証明書/秘密鍵を root からのみ読めるようにしている場合
records.configのproxy.config.ssl.cert.load_elevatedの設定を1に変更する必要があります。
Step 2: HTTP/2 の設定
records.config の proxy.config.http2.enabled の設定を 0 から 1 に変更します。
CONFIG proxy.config.http2.enabled INT 1
Step 3: 起動
ATS を起動して 4443 ポートにアクセスしてみてください。
$ trafficserver start
設定を書き換えた場合、ATS の再起動もしくは設定のリロードを行ってください。
$ trafficserver restart
or
$ traffic_ctl config reload
- 注3: 設定項目によってはリロードでは反映されず、再起動が必要なものもあります。
See Also
-
SSL/TLS 関連のその他の設定
-
HTTP/2 関連のその他の設定
-
ATS 自体のドキュメント
-
ATS 6.0.0 リリースアナウンス