KUSANAGIはバージョン7.8からHTTP/2に対応しました。

今回は、古いバージョンからHTTP/2に対応する方法についてまとめました。

HTTP/2とは

HTTP/2とは、HTTPという通信の新しい規格です。従来はHTTP/1.1という規格を使われていたのですが、読み込み速度などいくつかの欠点を抱えていました。それらの欠点を克服したのが、HTTP/2という新しい規格です。

よくわからないという場合は、HTTP/2にしておくと、ページの読み込みが速くなると思っておけばよいです。

対応方法

下記の記事を参考にしています。

KUSANAGI バージョンアップ情報 7.8

KUSANAGIインストールしてプロビジョニングしたときのバージョンが7.8以上の時は、これらの作業をする必要ありません。

しかし、バージョンが7.8未満のときは手動で設定をする必要があります。

サーバーの設定

最初にコマンドを実行してKUSANAGIの更新をします。

# yum update kusanagi*

次に設定の書き換えをします。

Nginxの設定ファイルを書き換えます。

/etc/nginx/conf.d/プロビジョニングの設定値_http.conf

変更前

location ~* /\. {
    deny all;
}

変更後

location ~* /\.well-known/ {
    allow all;
}

location ~* /\. {
    deny all;
}

変更前の設定の手前に、新しい設定を追記します。

/etc/nginx/conf.d/プロビジョニングの設定値_ssl.conf

変更前

location ~* /\. {
    deny all;
}

変更後

location ~* /\.well-known/ {
    allow all;
}

location ~* /\. {
    deny all;
}

変更前の設定の手前に、新しい設定を追記します。

Apacheの設定を書き換えます。

/etc/httpd/conf.d/プロビジョニングの設定値_ssl.conf

<VirtualHost *:443> 直下に以下を追加します。

Protocols h2 http/1.1

そして、設定を書き換えます。

変更前

SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5

変更後

SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK

これで設定の書き換えは終了です。

SSL証明書の設定

次に、SSL証明書の設定をします。ここでは、Let’s Encryptというツールを使って設定をします。

このコマンドを実行すれば自動的にSSL証明書が作成されてサーバーに配置されます。

# kusanagi update cert

WordPressの設定

最後に、WordPressの設定を書き換えます。

WordPressにログインして、ダッシュボードにアクセスします。

次に、「設定」から「一般」にアクセスします。

そうすると、「WordPressアドレス」と「サイトアドレス」の2つの設定があるので、その2つの先頭の「http://」という部分を「https://」に書き換えて設定を保存します。

今後の行動

SSL証明書は、期限があります。なので、期限が切れる前に更新しないといけません。

今回使用したLet’s Encryptというツールで発行される証明書は期限が90日です。

期限が切れない内に、下記のコマンドを実行して更新する必要があります。

# kusanagi update cert

更新すると、期限が更新した日から90日になります。

さいごに

これで、KUSANAGIをHTTP/2に対応させることができました。