1 分

モダンなHTTPS導入:Adam LangleyとTLSの改善

Adam LangleyのTLSに関する取り組みとHTTPSをデフォルトにする流れをやさしく解説。自動証明書、セキュリティヘッダー、ローテーション習慣など現代的なHTTPS導入の実務をまとめます。

モダンなHTTPS導入:Adam LangleyとTLSの改善

なぜHTTPは受け入れられなくなったのか

プレーンなHTTPは郵便のはがきを送るようなものです。途中で扱う誰でも中身を読めます。もっと悪いことに、中身を変更されることもあります。これは稀なエッジケースではありません。トラフィックがWi‑Fi、オフィスのルータ、モバイルキャリア、共有ホスティングを横断するたびに起きる普通のリスクです。

失うものは単なる「プライバシー」だけではありません。コントロールも失います。誰かがトラフィックを読めれば、ログイン、セッションクッキー、メール、フォーム入力を収集できます。誰かがトラフィックを改変できれば、広告を注入したり、ダウンロードをマルウェアに差し替えたり、支払いを密かにリダイレクトしたりできます。単純な問い合わせフォームでも、訪問者が見知らぬ人と共有するつもりがなかった名前や電話番号、業務情報が漏れることがあります。

「ただの小さなサイト」だからといって安全地帯ではありません。攻撃者はターゲットを一つずつ選ぶわけではなく、スキャンして自動化します。HTTPページはクッキー窃取、偽ログインボックス、信頼を損なうコンテンツ注入、見た目だけ同じサイトへのリダイレクトといった簡単な機会になります。

現実的な小さな例を挙げると、公衆Wi‑Fiでカフェのメニューサイトを見ている人がいるとします。そのページがHTTPで読み込まれると、近くの攻撃者が「特別オファー」ボタンを加えて怪しいアプリをインストールさせるように改変できます。オーナーは気づかないかもしれませんが、顧客には影響が出ます。

だから現代のHTTPS導入の目標は単純です:保護をデフォルトにすること。HTTPSは後回しにする「セキュリティプロジェクト」ではなく、すべての環境、すべてのドメイン、すべてのリリースの出発点であるべきです。ユーザーは何も考えずに暗号化と整合性を得られるようにします。

Adam Langleyがより安全なTLSを推進した役割

Adam Langleyは、特にGoogleのChromeチームで行われたブラウザ側の地味なセキュリティ作業を代表する人物の一人です。ブラウザはウェブの門番なので、その影響は大きいです。ブラウザは「十分に安全」と見なす基準を決め、警告を表示し、古いオプションを無効化します。

サイトアドレスを入力すると、ブラウザとサーバは実際のコンテンツが読み込まれる前に短い挨拶(ハンドシェイク)を行います。暗号化された接続に合意し、サーバは証明書で自分の身元を示し、ブラウザはその証明を確認してから信頼できるページを表示します。

多くの人にとってそのハンドシェイクは魔法のように感じられますが、かつては脆弱でした。どちらかの側が古い設定を許していれば、攻撃者が接続をダウングレードしたり古い弱い挙動を利用したりする余地がありました。

Langleyは、安全な経路を簡単に選べるようにする改善を推進しました。モダンなTLSの設計やブラウザへの導入に影響を与える仕事です。また、誤発行や疑わしい証明書を隠しにくくする仕組みを後押しし、HTTPSを「システムがうまく動くことを期待する」状態から「システムを検証・監視する」状態へと変えました。

小さなプロトコルやポリシーの変更が大きな安全性向上を生むことがあります。暗号の数学を理解しなくても効果は感じられます:弱いオプションに陥る可能性が減り、接続がより速くなってHTTPSが「無料」に感じられ、証明書チェックが明瞭になり、デフォルトが強化されて人的ミスが減る、といった形です。

この変化がモダンなHTTPS導入がデフォルトになった大きな理由の一つです。ブラウザがHTTPSをボーナス扱いするのをやめ、基準として扱い始めたことで、サーバ、ホスティング、デプロイツールがそれに従うようになりました。

HTTPSを信頼しやすくしたTLSの変更点

HTTPSが一般的になったのは、TLSがデフォルトでより安全になり運用が楽になったからです。詳細はすぐに深くなりますが、日常のチームにとって実用的な違いを生んだ変更がいくつかあります。

鍵が漏れてもセッションが安全

フォワードシークレシーはこういう意味です:もし明日サーバの秘密鍵が盗まれても、先月記録したトラフィックを復号できないはずだ、ということです。各接続は短命の鍵を使い、セッション後に破棄されます。

運用上は鍵の衛生管理(定期的なローテーション、妥当な証明書寿命、後で置き換えるという放置を避ける)へ向かわせます。漏洩時の影響範囲が小さくなる点も重要です。過去に記録されたトラフィックが自動的に露出することはありません。

速く、単純で、ミスしにくい

TLSのハンドシェイクは時間とともに速く、単純になりました。速度はHTTPSを避ける言い訳を減らし、危険なパフォーマンスハックを続ける誘惑を減らします。

TLS 1.3は大掃除でもありました。間違いやすく攻撃されやすい古い選択肢を多く取り除きました。ノブが少ないほど意図せぬ弱い設定が減ります。

Certificate Transparencyは別の方法で信頼を向上させました。ドメイン向けに発行された疑わしい証明書を見つけやすくしたため、不正や誤発行が早期に発見されやすくなります。

ブラウザはこうした変化を後押しし、安全なデフォルトへとエコシステムを誘導しました。警告は大きくなり、不安全なオプションは無効化され、「デフォルトで安全」が最も簡単な道になりました。

カスタムドメインでアプリを出荷する場合、これらの改善のおかげで暗号の微調整に時間をかける必要が減り、障害やインシデントを実際に防ぐ基本作業に時間を使えるようになります:自動証明書更新、まともなセキュリティヘッダー、明確な鍵と証明書のローテーション計画です。

HTTPSがデフォルト期待になった経緯

長年、HTTPSはアップグレード扱いでした:ログインや決済にはありがたいけれど、それ以外はお好みで。ブラウザがプレーンHTTPをリスクと見なすようになるとその考え方は壊れました。アドレスバーに警告が出ると、ユーザーはTLSを理解していなくても不安を感じ、離脱します。

検索やプラットフォームポリシーも圧力をかけました。「後でHTTPSを追加する」はサポートチケット、コンバージョン低下、パートナーからの面倒な質問に変わると学ばれました。内部ツールでさえHTTPだと違和感が出ます。VPNの内側であっても同じネットワークリスクが適用されます。

結果として新しい基準が生まれました:デフォルトでの暗号化、自動で更新される証明書、顧客より先に問題を検出する監視。大きな変化は単一の機能ではなく文化的シフトです。HTTPSは今や「アプリが動く」の一部になり、バックアップや稼働時間と同列に扱われます。

実務的には「期待されること」は通常次の通りです:

  • すべての環境でHTTPSを使う(本番だけでない)。
  • 証明書更新は自動化し、失敗すればアラートが出る。
  • 有効期限やハンドシェイクエラーを通常の指標として追跡する。
  • ドメイン、CDN、ロードバランサを変更する際にTLSとリダイレクト設定を確認する。
  • TLSと証明書の責任者を明確にする。「時間がある人」という扱いにしない。

よくある失敗パターンの例:チームがカスタムドメインでマーケティングサイトを立ち上げる。サイトは読み込まれるが証明書チェーンが間違っていて一部ブラウザが警告を出す。多くの訪問者は進むことができても信頼は失われます。自動化と監視があれば、これはノンイベントです:正しい証明書が発行され、スケジュール通りに更新され、何かズレがあればアラートが鳴ります。

セキュリティは一度きりの設定ではなく、デプロイ、インフラのローテーション、新しいドメインを追加するたびに続ける習慣です。

自動証明書を設定する手順

所有権を明確にする
ドメインやセキュリティの意思決定を可視化して、リリース間で抜け落ちないようにしましょう。

自動証明書は「今日HTTPSが動く」と「来月も信頼できるHTTPS」 の差を生みます。目標は簡単です:すべてのホスト名に証明書を割り当て、更新は人手なしで行い、何かが壊れればすぐに検知すること。

1) ドメインの全体把握から始める

ユーザーがアクセスする可能性のあるすべてのドメインとサブドメインを書き出します。www、APIホスト、テナントやプレビューのサブドメインも含めます。今すぐカバーが必要なものと、ブロックやリダイレクトで良いものを区別します。

2) ドメイン所有権の証明方法を選ぶ

ほとんどのチームはACME(自動発行CAの背後にあるプロトコル)を使います。一般的に次の2つの方法から選びます:

  • HTTPチャレンジ:サーバが特別なファイルをプレーンHTTPで返す。簡単だがポート80とルーティングを制御できることが必要。
  • DNSチャレンジ:短命のDNSレコードを追加する。ワイルドカード証明書や制約のあるネットワークに便利だが、DNSの自動化が必要。

DNSやルーティングの実際の仕組みに合う方法を選んでください。望みではなく現実に合わせます。

3) 更新を自動化し、本番前にテストする

更新をスケジュールし(例えば毎日実行)、まずはステージングやドライランでテストします。デプロイ、設定変更、再起動後でもジョブが動くことを確認します。ラップトップだけで動く更新プロセスはプロセスとは言えません。

4) TLSをどこで終端するかを決める

TLSはエッジ(CDN)で終端することも、ロードバランサで終端することも、アプリサーバ内で終端することもあります。一貫性を保ちましょう。エッジで終端する場合、エッジ→オリジンの接続も暗号化されていることを確認してください。特にログインやAPIでは重要です。

5) 退屈な失敗に対するログとアラートを追加する

更新、更新エラー、期限切れの監視を行います。実用的なルールは30日、7日、1日でアラートを出すことです。API証明書がDNSトークン更新の問題で更新に失敗したら、障害中ではなく初日でアラートが欲しいはずです。

HTTPSで設定すべきセキュリティヘッダー

HTTPSはトラフィックを暗号化しますが、ブラウザには何が許されるかを指示する必要があります。それがセキュリティヘッダーの役割です。これらはエッジ(ロードバランサ、リバースプロキシ、ホスティング設定)で設定し、すべてのデプロイに一緒に出すのが望ましいです。アプリのビルドに依存させないようにします。

トラブルが少ない小さなセット:

  • Strict-Transport-Security (HSTS): max-age=31536000; includeSubDomainspreloadは確信が持てる場合のみ追加)
  • X-Content-Type-Options: nosniff
  • Referrer-Policy: strict-origin-when-cross-origin
  • X-Frame-Options: DENY(フレームが本当に必要ならSAMEORIGIN
  • Permissions-Policy: 使っていない機能を無効化(例:camera、microphone、geolocation)

HSTSは注意が必要です。一度ブラウザが学習すると、そのドメインはmax-ageが切れるまでHTTPSに強制されます。有効化前に、すべてのリダイレクトがHTTPSへ向かうこと(ループがないこと)、includeSubDomainsを使うならすべてのサブドメインがHTTPS対応していること、証明書のカバレッジがドメイン計画(wwwやAPIサブドメインを含む)に合っていることを確認してください。

アプリを壊さないContent Security Policy (CSP)

CSPは強力ですが、ログイン、決済ページ、分析、埋め込みウィジェットを壊しがちなヘッダーでもあります。段階的に導入しましょう:ステージングで報告のみ(report-only)モードから始め、何がブロックされるかを監視し、徐々にルールを強化します。

実用例:アプリがサードパーティの認証ウィジェットといくつかのスクリプトバンドルを読み込む場合、厳しいCSPは認証フローをブロックして特定のページでサインインを失敗させます。ステージングでログイン、パスワードリセット、埋め込みコンテンツをフルにテストしてキャッチします。

ヘッダー設定はTLSやドメインと同じ場所、デプロイ設定のすぐ隣に置いてください。Koder.aiのようなプラットフォームでカスタムドメインをデプロイする場合、ヘッダーをアプリコードの奥に隠さず、リリースチェックリストの一部として扱いましょう。

壊れないローテーション計画

ローテーション計画があれば、セキュリティが「カレンダーのリマインダ」に堕することを防げます。また、証明書の有効期限切れや鍵漏洩で深夜の障害対応になるのを避けられます。

まず何をローテーションするかを明確にします。チームはTLS証明書に注目しがちですが、秘密鍵そのものやアプリの背後にあるシークレットも同様に重要です。

典型的なローテーション対象:TLS証明書と秘密鍵、APIキーとWebhook署名シークレット、データベースパスワードとサービスアカウント、セッション署名鍵と暗号鍵、サードパーティトークン(決済、メール、分析)など。

次に、所有者と単純なスケジュールを決めます。責任者を一人(またはロール)とバックアップ一人を決めます。スケジュールは現実的に:リスクを減らす程度に頻繁だが、頻繁すぎて誰も実行しなくなるほどではないこと。可能なら短命の資格情報を自動更新する方向にし、短命にできない例外を明記します。

ローテーションは「実際に成功したことを証明」できて初めて機能します。各ローテーションを小さなデプロイと扱い、新しい値が使われていることを検証し、古い値が受け入れられなくなったことを確認します。

短いランブックを用意すると再現しやすくなります:

  • 新しい資格情報を作り、承認されたシークレットシステムに保存する。
  • 変更を安全にデプロイする(短期間は古いものと新しいものを両方受け入れる)。
  • 実際のチェックで検証する(ログイン、API呼び出し、ハンドシェイク、DBクエリ)。
  • 古い資格情報を取り下げ、その無効を確認する。
  • 何を、なぜ、誰が承認したかを記録する。

最後に、失敗を想定して練習します。誤ったローテーションは起きます:誤った証明書チェーン、欠けた中間証明書、シークレット名のタイプミスなど。ロールバックオプションを迅速で退屈な手順にしておきましょう。スナップショットとロールバックをサポートするプラットフォーム(Koder.aiのような)でデプロイしていれば、最後に正常だったバージョンを復元してTLSハンドシェイクを再確認する練習をします。その習慣が、モダンなHTTPS導入を一度きりの設定から安定したルーチンに変えます。

チームがまだやりがちなHTTPS/TLSのよくあるミス

ビルド時間を増やす
Koder.aiで作ったものを共有したり、他の人を紹介して次のプロジェクトのクレジットを得ましょう。

モダンなツールがあっても、チームはいくつかの繰り返しミスでつまずきます。多くは「難しい暗号」の問題ではなく、日常の習慣が安全な設定を脆弱にしてしまうというものです。

混合コンテンツは典型例です:ページ自体はHTTPSで読み込まれるが、スクリプト、画像、フォント、分析タグなどがHTTPのまま残っている。ブラウザはそれをブロックするか、読み込んで改ざんの隙を作るかもしれません。ブラウザのコンソールでの簡単なチェックとサードパーティ埋め込みのスキャンで早めに発見できます。

別の静かな失敗は、テスト環境を動かすためにクライアント側で「証明書検証を無効化」してしまうことです。「今だけ」というフラグがモバイルビルドやバックグラウンドサービスに紛れ込み、本番に入ることがあります。テストが必要なら、信頼チェーンを正しく整備する(正しいホスト名、有効な証明書、正確な時間設定)ことを優先し、検証は交渉の余地のない要求として扱ってください。

証明書の期限切れも未だに多く見られます。自動化しても監視がなければ見落とされます。自動化にはバックストップ(更新失敗のアラートとドメインごとの残日数の可視化)が必要です。

HSTSのような厳格なポリシーは慎重に扱ってください。早すぎる有効化はサブドメインのミスや証明書の破損でユーザーを締め出します。段階的に導入し、まずは短いmax-ageから始めて回復プランを用意しましょう。

最後に、すべてに同じワイルドカード証明書を使うのは避けてください。漏洩や緊急交換が発生すると一度にすべてがダウンします。アプリや環境ごとに証明書を分離するのが安全側のデフォルトです。

Koder.aiからカスタムドメインで新しいアプリをエクスポートして展開する場合も同じ規律を守ってください:サードパーティ資産がHTTPSであることを確認し、クライアント側の検証をオンにし、更新や交換が突然の驚きにならないようアラートを設定してください。

出荷前のチェックリスト(ラストマイル)

ラストマイルはHTTPSのミスが隠れがちな箇所です。あるブラウザでは問題なく見えても、実際のユーザーやクローラ、モバイルアプリでは壊れていることがあります。リリース完了とする前にいくつかのチェックを行い、モダンなHTTPS導入の一部にしてください。

ラストマイルチェック

このリストをドメインごとに一回、CDN、ロードバランサ、DNS変更後にも再度実行します:

  • 証明書チェーンを端から端まで検証し、期待するすべての名前がカバーされているか確認する(ルート、apex vs www、実際に提供するサブドメイン)。
  • リダイレクトが意図した通りに動作するか確認する:HTTPは常にHTTPSへ、1つの正準ホストに収束する(リダイレクトループや二重ホップがない)。
  • 最終的なHTTPSレスポンスにセキュリティヘッダーが存在し、層ごとに重複していないか確認する(アプリとエッジ双方で追加されると重複することがある)。
  • クリーンなブラウザプロファイル(HSTSや古い証明書状態のキャッシュがないもの)と実際のモバイル端末(セルラーデータ)でテストする。
  • 監視が設定されていることを確認する:有効期限の予告アラート、ハンドシェイク失敗の急増、TLSやリダイレクト関連の4xx/5xxのスパイクを検知する。

単純なシナリオ:カスタムドメインを追加し証明書はカバーしているが、リダイレクトがexample.comからwww.example.comへHTTPで飛ばしている。あるURLでは「安全」に見えても、最初のホップでダウングレードが起きてログインのクッキーが壊れることがあります。

Koder.aiのようなホスティングでデプロイしている場合でも同じチェックを行ってください。ホスティングや自動証明書は手間を減らしますが、ユーザーが見る正確なドメイン名、リダイレクト、ヘッダーを検証することに代わるものではありません。問題が起きたときにスナップショットとロールバックがあれば、エッジ設定を修正する間に長い障害を避けられます。

例:カスタムドメインで新しいアプリを立ち上げる

面倒を減らして安全に出荷する
数分でアプリを生成し、ユーザーに見える部分にセキュリティ作業を集中させます。

小さなSaaSリリースを想像してください:公開ランディングページ(マーケティングサイト)と、顧客がアカウントを管理するログイン済みダッシュボード。app.yourbrand.comのようなクリーンなカスタムドメインを用意し、初日からHTTPSをデフォルトにしたいとします。

まずカスタムドメインをホスティング設定に接続し、すべてのリクエストがHTTPSで終わることを確認します。ベアドメインとwwwバージョン(使用する場合)、ダッシュボードのサブドメインの両方をテストします。目標は正準URLを1つにして、他のバージョンはそこにリダイレクトされることです。

次に混合コンテンツを監視します。ページはHTTPSで読み込まれても、スクリプト、画像、フォント、API呼び出しがhttp://のままだと静かにHTTPSを壊すことがあります。ランディングページのアセット、分析スニペット、ダッシュボードが呼ぶAPIを確認してください。

リダイレクトが正しく全サブドメインが確定してからHSTSを有効にします。段階的に運用しましょう:最初は短いmax-ageで、HTTPが本当に不要か確認してから増やします。サブドメインを含めるなら、まずすべてのサブドメインがHTTPS対応していることを確認します。

モダンなHTTPS導入では、証明書をカレンダーのリマインダではなく配管の一部として扱います。自動更新を設定し、有効期限と更新失敗に少なくとも一つのアラート(メールやオンコール)を設定してください。Koder.aiのようなプラットフォームでカスタムドメインとホスティングを使う場合、「更新が検証された」ことをリリースルーチンの一部にしましょう。

良い週次メンテナンスは短く一貫しています:

  • 主要ページ(ランディング、ログイン、ダッシュボード)で混合コンテンツをスキャンする。
  • 証明書の有効期限が十分に先か確認し(アラートが動作しているか)、
  • リダイレクトとプロキシルールの最近の変更をレビューする。
  • メインページでセキュリティヘッダーをブラウザでスポットチェックする。
  • 将来のローテーションのためにTLSやドメインの変更を記録する。

小さな定期チェックは金曜夜の緊急修正よりずっと優れています。

次のステップ:すべてのデプロイで安全なデフォルトにする

HTTPSは退屈になるほど維持が楽です。目標はこれらの作業を「毎回行われる習慣」に変えることです。特別なプロジェクトではなく、誰か一人が細部を覚えているかどうかに依存しないこと。

チェックリストをリリーステンプレートにして、すべての環境(ステージングも本番も)で同じ手順を踏むようにします。そうすればどのアプリを出荷してもモダンなHTTPS導入は同じ見た目になります。

実用的なテンプレートは通常、次を含みます:自動証明書更新とアラートの確認、主要ヘッダーの存在確認(HSTS、可能ならCSP、nosniffなど)、リダイレクトとTLS設定がポリシーに合っているかの検証、クリーンブラウザでのポストデプロイテストと基本的なTLSチェック、何をどう検証したかの記録。

ミスは期待しておき、迅速に回復できる計画を立ててください。誤ったヘッダーやTLSの調整はログイン、埋め込みコンテンツ、API呼び出しを壊す可能性があるため、ロールバックを第一クラスの手順にしましょう。Koder.aiで構築する場合、Planning Mode、デプロイとホスティング、スナップショットとロールバックを使って変更をステージングし、既知の正常な状態に素早く戻せるようにします。エクスポート可能なソースコードがあれば、同じセットアップを別の場所で再現するのも容易です。

変更内容を毎回同じ場所に短く記録しましょう。何を変えたか(例:「HSTS preloadを有効化」「中間チェーンをローテーション」など)、期待した結果、リリース後に実行した正確な検証を記録します。

最後に、小さな月次レビューをスケジュールして証明書とローテーション計画がずれないようにします。更新イベントと期限間近の警告、ヘッダー変更と関連するバグ報告、証明書ローテーションログと鍵の所有者、監視に出た想定外のTLSハンドシェイク失敗などをざっと確認します。

小さな定期的チェックが金曜夜の緊急対応に勝ります。

よくある質問

なぜ小さなサイトでもプレーンなHTTPでは「十分」ではないのですか?

HTTPは経路上の誰にでも読まれたり改ざんされたりするデータ送信方法です(公衆Wi‑Fi、ルータ、プロキシ、通信事業者など)。HTTPSは暗号化と整合性を追加するので、ログイン情報、クッキー、フォーム、ダウンロードが不用意に傍受・改変されることを防ぎます。

「プライバシー」以外にHTTPページで実際に何が起こり得ますか?

受動的な攻撃者はセッションクッキーを盗んでアカウントを乗っ取ることができます。能動的な攻撃者はコンテンツを注入・差し替える(偽ログインフォーム、ダウンロードの差し替え、支払いのリダイレクト、不要な広告など)ことができます。厄介なのは自動化です:スキャナーはスケールでHTTPページを探します。

モダンなHTTPS設定で最も重要なTLS設定は何ですか?

シンプルに言えば:

  • TLS 1.3を使う(互換性のために必要ならTLS 1.2を残す)。
  • レガシープロトコルや弱い暗号を無効化する。
  • サーバが完全な証明書チェーンを正しく送ることを確認する。

ほとんどのチームは暗号を細かく調整するよりも「安全なデフォルト」を選ぶべきです。

「フォワードシークレシー」は実際に何から守ってくれますか?

フォワードシークレシー(前方秘匿性)は、サーバの秘密鍵が後で盗まれたとしても過去の通信が復号されにくくするものです。鍵が流出しても過去の記録済みセッションが自動で復号されないため、被害範囲を小さくできます。

Certificate Transparencyとは何で、なぜ気にすべきですか?

Certificate Transparencyは証明書の発行を可視化する仕組みで、ドメインに対する誤発行や悪意ある発行を検出しやすくします。個別にログを眺めなくても、監視と説明責任が向上する点で有益です。

証明書のためにACMEのHTTPチャレンジとDNSチャレンジ、どちらを使うべきですか?

既定では:HTTP-01(HTTPチャレンジ、ポート80を制御できる場合)が最も簡単です。

DNS-01(DNSチャレンジ)はワイルドカード証明書(*.example.com)やポート80を開けられない環境、複雑なエッジルーティングで有利です。ただしDNSの自動化が必要です。

証明書自動化が黙って失敗しないように何を監視すべきですか?

最低限監視すべきは:

  • 証明書の有効期限までの日数(30/7/1日のアラート)
  • 更新失敗(即時アラート)
  • TLSハンドシェイクエラー(スパイクはチェーンや設定問題の兆候)
  • リダイレクトループやHTTP→HTTPSの挙動(ログインが壊れることがある)

自動化してもアラートがなければ、ユーザーからの苦情まで失敗が見えません。

HTTPSを有効にしたあと、まずどのセキュリティヘッダーを設定すべきですか?

まず壊れにくい小さなセットから始めましょう:

  • Strict-Transport-Security(最初は短いmax-ageで)
  • X-Content-Type-Options: nosniff
  • Referrer-Policy: strict-origin-when-cross-origin
  • X-Frame-Options: DENY(必要ならSAMEORIGIN
  • 使わない機能はPermissions-Policyで無効化する

HSTSは段階的に導入して、サブドメインや証明書のミスでユーザーを締め出さないよう注意してください。

アプリを壊さずにContent Security Policyを導入するには?

ステップを踏んで導入します:

  • ステージングでreport-only(報告のみ)モードから始める。
  • ログイン、パスワードリセット、チェックアウト、埋め込みウィジェットなどのフルジャーニーをテストする。
  • 問題がないことを確認できたら徐々に制限を強める。

CSPが壊れやすいのはサードパーティスクリプト、認証ウィジェット、インラインスクリプトなどが想定外のブロック対象になるためです。

TLS証明書と鍵の実用的なローテーション計画はどうすれば良いですか?

TLS証明書や鍵の回転は小さなデプロイと同じように扱います:

  • 新しい証明書/鍵を生成して承認されたシークレット管理に格納する。
  • 古いものと新しいものが短期間共存する安全なデプロイを行う。
  • 実際のチェック(ハンドシェイク、ログイン、API呼び出し)で検証する。
  • 古いものを取り下げてもう使えないことを確認する。

Koder.aiのようなプラットフォームを使うなら、Planning Modeやスナップショット/ロールバックで変更を段階的に扱えます。

Related posts