QUALYS SSL Server Testの結果をA-からA+にしたApache設定

2017/05/22[公開]

 Let’s Encrypt証明書で常時SSLにしているこのサイトですが、QUALYS SSL LABS (https://www.ssllabs.com/ssltest/)のSSL Server Test 結果をA-(Aマイナス)からA+(Aプラス)にすることが出来ました。

 Debian JessieのApache2のデフォルト設定のままでAマイナスなので、最初からなかなか良い成績です。さらにA-をAにするのは簡単でした。さらに常時SSLサイトなら、A+にもできました。Debian Jessieの安定版である、apache(2.4.10-10+deb8u8)、openssl(1.0.1t-1+deb8u6)での内容となります。

スポンサー リンク

A-をAに(Forward Secrecyサポート)

 テスト結果がA-の場合、「The server does not support Forward Secrecy with the reference browsers. 」というアドバイスが出ているはずです。More Info>>を開いても、Forward Secrecyとは何かという説明が英語で詳細に出ていますが、じゃあどうすれば良いのかはさっぱりわかりませんでした。ネットで調べると設定ファイルを一行変えるだけで対応できるようです。

SSL.confを編集

 Debian JessieのApache2の場合、設定ファイル /etc/apache2/mods-available/ssl.conf を編集します。70行目の #SSLHonorCipherOrder onの先頭の#を外して有効にします。

 これで、クライアントのブラウザーが弱い方の暗号化を選びたがる傾向があるのを、サーバー側で強い方の暗号化が選ばれるようにする設定が有効になるようです。上記のコメントにそう書いてあります。

apache2リロード

 apache2をリロードして設定が反映されました。これて再テストするとAマイナスからAの結果に変更となりました。

AをA+に(HSTSサポート)

 Aになって喜んでいたら、常時SSLサイトならばAプラスにもできるようだったので設定しました。HSTS(HTTP Strict Transport Security)の常時SSL通信対応にする設定をします。http://~でアクセスしてもhttps://~でサイトが表示される設定です。

 いままでこのサイトでも.htaccessに301リダイレクトの設定をしており、http://~のアクセスもリダイレクトでhttps://~に強制的に表示する設定をしているのにと思いましたが、301リダイレクトではリダイレクトされるまで暗号化されていない通信が発生するのに対し、HSTSが有効だとブラウザーに事前にSSL通信でアクセスに来るように伝えることができるので、よりセキュアな通信が可能ということのようです。(参考サイト:Mozilla MDN

Sites-Availableの設定ファイル

 Debian JessieのApacheの場合は、 /etc/apache2/sites-available/default-ssl.conf  ファイルを編集します。deault-ssl.confファイルはdebianデフォルトの設定ファイルですが、環境によりファイル名は違います。

 追加する一行は、 Header set Strict-Transport-Security "max-age=31536000; includeSubDomains" です。必ず常時SSLサイトになっているホスト名のバーチャルホストにだけ設定する必要があります。

 下の例のように、SSL証明書バスの下に追記しました。

  Headersモジュールが必要ですが、おそらくすでに有効になっているはずです。念のため有効にしてみます。(すでに有効なら、”already enabled” と出るだけです。)

apache2リロード

 apache2をリロードして設定が反映されます。これて再テストするとAからA+の結果に変更となりました。

最後に

 このHSTS設定は、公開ディレクトリーの.htaccessに設定しても良いみたいです。それでも、.htaccessには301リダイレクトの記述があるままにしておいても、今回のapacheに設定する方法の方が優先されます。サーバーの設定が変更できないときは、.htaccessに設定するのが良いでしょう。

スポンサー リンク

こちらの記事もどうぞ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です