Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから
公開日:2016年5月6日
最終更新日:2016年5月7日

Apache で SSL/TLS 証明書を使用したサイトの評価を A+ にする

下記記事の内容により、Let’s Encrypt の SSL/TLS 証明書の導入・設定が済みました。

ですが、これで設定が全て完了したわけではなく、SSL/TLS 証明書の Apache の設定をしないと、POODLEなどの脆弱性を含んだ状態でサイトを公開することになってしまいます。

SSL/TLS 証明書の Web サーバーの設定のレベルは、SSL Server Test (Powered by Qualys SSL Labs) で検証することができます。

この Qualys SSL Labs というサイトは有名なようですね。グローバルサインの SSL Server Test も結局、Qualys SSL Labs を使用しているようですし。

では、さくら VPS の CentOS 6 のデフォルト設定で HTTPS 化されたサイトを検証してみましょう。

Ssltls01

なんと評価は C でした。

よく見ると POODLE とか書いてあるし、結構問題がありそうです。

では、A 評価を目指して設定を変更していきます。

Apache のデフォルトの ssl.conf の設定は以下のようになります。

POOODLE の脆弱性は SSL 3 にあるので、SSL 3 を無効にします。

Apache を再起動して、再度検証します。

Ssltls02

今度は B 評価になりました。

次は、RC4 ですね。RC4 は現在では危険な暗号スイートのようなので、これを無効にします。

Apache を再起動して、再度検証します。

しかし、何度試してもうまくいきません。

RC4 を受け付ける設定になっているという警告が出てしまいます。

いろいろ試していてようやく分かったのですが、SSLCipherSuite が VirtualHost ディレクティブ内にあるとダメなようです。ですので、上記の内容を ssl.conf の末尾にコピーアンドペーストして、元の記述はコメントアウトします。

Apache を再起動後に再検証します。

Ssltls03

評価が A- まで来ましたね。

では、最後の Logjam と呼ばれる Diffie-hellman(DH)の鍵交換の脆弱性の対応をします。

DH を無効化して、サーバー側の暗号スイートを優先させるようにします。ssl.conf の末尾に記述することに注意してください。Apache を再起動後に再検証します。

Ssltls04

A 評価きましたね!

A 評価を得たのですが HTTPS 化したサイトなので、HSTS(HTTP Strict Transport Security) の設定もしてしまいましょう。

HSTS は、HTTPS の通信をブラウザに強制するセキュリティ機能です。最初の1回だけは HTTP で接続する場合がありますが、その後は HTTPS で通信するのでデータの安全性が高まります。

HSTS の設定は、httpd.conf で行っても構わないのですが、ここでは ssl.conf で行ってみます。

ssl.conf の最終行に以下の記述を追加し、Apache を再起動後に再検証します

Ssltls05

おっと、ここでまさかの A+ 評価!!本人もびっくり!w

A+ 評価が出たのは驚きですが、何時間も格闘した甲斐があったというものです。

まとめると、ssl.conf の末尾(VirtualHost ディレクティブ外)に以下の記述をして、Apache を再起動することで HTTPS 通信の評価が A+ になります。

また、使用できない環境も、Windows XP + IE6 位なので後方互換性も十分ですね。

なお、この情報は 2016年5月6日 時点のものなので、実際に利用する際には最新の情報も確認してください。

参考サイト


スポンサーリンク




カテゴリー:ブログ

Twitter でも、いろんな情報を発信しています。



コメントを残す

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

CAPTCHA