HTTPS / SSL

HTTPSは、TLSと証明書を使って、ブラウザーと名前の付いたサイトの間を流れるデータを保護します。ただし、それだけでアプリケーション全体が安全になるわけではありません。

HTTPS / SSLは、TLSと、ブラウザーが検証した証明書によって確立される、暗号化されたHTTP接続を指します。

意味と範囲

HTTPSは、ネットワークレベルの多くのリスクから接続を保護します。アプリケーションの認可、入力の処理、サーバーの設定には、それぞれ別の対策が必要です。

公開するホスト名の証明書を取得して設置し、HTTPを正規のHTTPSのURLへリダイレクトし、内部の参照を更新します。そのうえで、証明書チェーン、リダイレクト、アセットの読み込みをテストします。本番ではないエンドポイントは、公開のリンクから外しておきます。

確認方法

HTTPS / SSLの概念図です。

ブラウザーのセキュリティパネル、証明書の名前と有効期限、HTTPからHTTPSへのリダイレクト、混在コンテンツの警告、canonicalタグ、サイトマップのURLを確認します。テストはトップページだけでなく、代表的なページでも行います。

HTTPSへの移行では、小さなホスト名の一覧を作ります。ルートホスト、wwwあり・なしのバリエーション、ローカライズしたホスト、代表的なページが読み込むアセット用のホストなどです。HTTPの各バリエーションから、対応するHTTPSへ、直接の恒久的なリダイレクトが1回で行われるかをテストします。そのうえで、ブラウザーで証明書の名前、有効期限、チェーンを確認します。開発者ツールを開いてページを読み込み、HTTPのままの画像、フォント、スクリプト、API呼び出しなどの混在コンテンツを見つけます。

限界、確認方法、よくある誤り

鍵のアイコンは、コンテンツが正しいこと、販売者が信頼できること、アカウントが安全であることを証明しません。示すのは、名前の付いたホストとの接続が保護されていることだけです。

リダイレクトのルールを有効にしたあとで、canonicalタグ、hreflangのアノテーション、サイトマップのエントリー、内部リンクを確認します。証明書が有効でも、canonicalがHTTPを指したままだったり、ブラウザーでアセットの読み込みに失敗したりすることがあります。実務上の受け入れ基準は、レンダリング後のルートがすべて一貫して安全であることです。関係のないアプリケーションのセキュリティ対策は、別に評価します。

FAQ

有効な証明書があれば、HTTPSへの移行は完了ですか?
いいえ。リダイレクト、混在コンテンツ、内部リンク、正規URL、サイトマップのエントリーも確認します。
証明書のホスト名エラーが問題になるのはなぜですか?
証明書は、訪問者がリクエストしたホスト名をカバーしている必要があります。そうでないと、ブラウザーは期待されるIDを確認できません。