Server

CentOS6のLAMP環境でTLS1.2対応

投稿日:2018年5月1日 更新日:

はじめに

ものすごくひさしぶりに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年現在ではあまり問題無い範囲かと思います。
(とはいえ、フィーチャーフォンでの接続も想定するサービスでは、頭が痛いかもしれませんが…)

さいごに

作業自体はコピペと数回のコマンド実行で済んでしまいますが、自分が何をどう変更したのか、作業内容を理解しておく必要がありますので、参考リンクを並べておきます。各記事の執筆者の方々に感謝いたします。

blog-page_footer_336




blog-page_footer_336




-Server

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

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

CAPTCHA


関連記事

RubyでOSM Nominatimを使ってみた

1 はじめに2 導入3 検索3.1 建物名による検索の実装例3.2 住所による検索の実装例4 リバースジオコーディング4.1 実装例5 住所の整形6 Open Street Map Nominatim ...

aws

AWSのT3インスタンスの特徴

1 はじめに2 T3インスタンスとは2.1 T3インスタンスのスペック2.2 Unlimited Modeがデフォルトで有効2.3 ハイパーバイザはNitro3 T2インスタンスとの比較3.1 仮想C ...

aws

EC2インスタンスのメモリとディスクのメトリクスモニタリングでハマったこと

1 はじめに2 メモリとディスクのメトリクスモニタリング3 ハマりポイント4 対応方法5 さいごに はじめに AWSのEC2インスタンスでディスク容量やメモリの使用率をCloudWatchで監視をする ...

CircleCIを使ってみた(RailsのRSpecとデプロイのサンプル)

1 はじめに2 導入するにあたって3 項目B4 補足4.1 開発環境とCI環境でdatabase.ymlが異なる5 さいごに はじめに 個人的に作成しているアプリケーションのCIツールとして、Circ ...

aws

MyCoachの本番環境をAWS上に構築する 〜ネットワーク編〜

1 はじめに1.1 関連記事2 MyCoachのネットワーク構成3 VPCとは3.1 設定する項目4 VPCの設定5 インターネットゲートウェイの設定6 サブネットの設定6.1 公開ネットワークの設定 ...

フォロー

blog-page_side_responsive

2018年5月
 12345
6789101112
13141516171819
20212223242526
2728293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。