はじめに
ものすごくひさしぶりにLAMP環境のSSL設定周りを見直す機会があり、その時の調査・作業メモになります。
個人運用のサービスで利用している決済代行会社から、TLS1.2未満が近々利用停止となる旨を通知されたことがきっかけでした。
いささかレガシーな構成ですが、これから同様の作業をする方の助けになればと思います。
業界団体レベルでのTLS1.2移行
PCI DSSという、クレジットカード業界が策定する国際セキュリティ基準があり、その最新版v3.2において、SSLおよびTLS1.1の初期バージョンを用いた通信の実装が禁止されています。
PCI DSS v3.2 — SSLおよび初期TLS1.1の実装を禁止
本来は2017年5月1日の時点で禁止となっていましたが、2018年6月30日までの移行猶予期間が設けられています。
今回、決済代行会社からTLS1.2移行の通知が来たのも、この猶予期間の終了に合わせてのものだと思います。
構成
- CentOS release 6.9 (Final)
- Apache/2.2.15 (Unix)
- OpenSSL 1.0.1e-fips
いずれもyumでサクッと。
ssl.confを編集する
- 設定ジェネレータ
Mozilla SSL Configuration Generatorが便利です。
このジェネレータにApacheとOpenSSLのバージョンを入力するだけで、ssl.confで要編集となる項目を出力してくれるすぐれものです。ApacheだけではなくNginxやlighttpd、AWS ELB等に対応しています。
FirefoxやThunderbirdの開発元であるMozzilaが提供しているという点も安心です。 - 計測ツール
SSL/TLS通信の強度を測る無料のwebツールがありますので、設定後はこれを使って確認していきます。
デフォルト設定のままで測定するとA〜F(Aが最高)でCランクとなり、各種脆弱性が指摘されます。今回のように決済などが絡んでいなくても、脆弱性の放置はそれだけで危険ですので、公開状態のサーバの設定はこまめに見直しましょう(自戒)。
ジェネレータ任せでOK
出力結果のスクリーンショットです。
※ 設定作業は2018年4月上旬に行っており、その時点では出力内容そのままではなく、多少追記が必要だったのですが、この記事を書くにあたって再度試したところ、なんとコピペだけでA+評価を取り、全ての脆弱性を塞ぐことができてしまいました。Mozilla先輩さすがです。
(証明書のファイルパスは適宜書き換えてください)
なお、設定に際して軽くハマったのですが、
SSLProtocol
SSLCipherSuite
SSLHonorCipherOrder
の3項目はVirtualHostの外に記述しないと、Apacheが認識してくれません。
ssl.confを何度編集してもツールの評価が変わらず、1時間近くムダにしました…。
設定変更の影響
古いプロトコルを切り捨てることにより、下記の端末がサポート外になってしまいます。
- IE10以下
- Safari 6.0.4以下
- Android 4.3以下
- フィーチャーフォン全般
上記端末は非推奨などではなく、https接続そのものが不可となります。セキュリティ強度とのトレードオフになりますが、2018年現在ではあまり問題無い範囲かと思います。
(とはいえ、フィーチャーフォンでの接続も想定するサービスでは、頭が痛いかもしれませんが…)
さいごに
作業自体はコピペと数回のコマンド実行で済んでしまいますが、自分が何をどう変更したのか、作業内容を理解しておく必要がありますので、参考リンクを並べておきます。各記事の執筆者の方々に感謝いたします。
- TLS1.2への移行の必要性~TLS1.2への有効化が始まる現状の動きとは
https://jp.globalsign.com/blog/2016/tls1.2_translation_necessity.html - Apache で SSL/TLS 証明書を使用したサイトの評価を A+ にする
https://www.websec-room.com/2016/05/06/2606 - じゃあ ssl_ciphers (SSLCipherSuite) は何を指定したらいいの!? って話
https://oflow.me/archives/1889 - HSTS (HTTP Strict Transport Security) の導入
https://qiita.com/takoratta/items/fb6b3486257eb7b9f12e - 無料でHTTPS化できる「Let’s Encrypt」をやってみた
(今回、ついでに証明書を切り替えました。ものすごく簡単でしたので、EV証明書などを使っていなければ、おすすめです)
https://qiita.com/daiki_44/items/a3616390f277722b97e0