Secure Steady
HTTPS - HTTPS の導入 の使い方・オプション・サンプル

HTTPS - HTTPS の導入

HTTP に TLS を組み合わせた暗号化通信プロトコル。盗聴・改ざん・なりすましを防ぐ Web セキュリティの基盤。

概念図

HTTPS の導入 diagram

実例

TLS 設定のグレードを確認

bash
# SSL Labs でテスト
curl -s "https://api.ssllabs.com/api/v3/analyze?host=example.com" | jq .endpoints[].grade

HTTPS の仕組み

HTTPS は HTTP に TLS(Transport Layer Security)を組み合わせたプロトコルです。

  1. TLS ハンドシェイク: クライアントとサーバーが暗号スイートを合意し、セッション鍵を生成する
  2. サーバー証明書の検証: クライアントがサーバーの証明書を認証局(CA)の証明書チェーンで検証する
  3. 暗号化通信: 合意した暗号方式でデータを暗号化して送受信する

これにより、通信の盗聴・改ざん・なりすましを防止します。

環境別の証明書管理

環境 方式 特徴
クラウド(最も一般的) AWS ACM / Azure マネージド証明書 / GCP マネージド SSL 無料・自動更新・手動管理不要。CloudFront / ALB / App Service / Cloud LB に直接適用。最優先で検討
商用 CA(日本企業で多い) GlobalSign, DigiCert, SECOM, Cybertrust 等 EV 証明書(組織名表示)が必要な場合や、社内規定で指定 CA がある場合に利用
Let's Encrypt(個人・小規模向け) certbot + 自動更新(cron / systemd timer) 無料だが有効期限 90 日。自動更新の設定が必須。個人サイトや検証環境向き

クラウド環境であれば、マネージド証明書を使えば発行・更新・適用がすべて自動化されるため、証明書の期限切れ事故を根本的に防げます。

導入チェックリスト

  • HTTP から HTTPS への 301 リダイレクトを設定する
  • HSTS(HTTP Strict Transport Security)ヘッダを有効にする
  • Mixed Content(HTTPS ページ上の HTTP リソース)を排除する
  • TLS 1.2 以上のみを有効にする(TLS 1.0 / 1.1 は無効化)
  • 安全でない暗号スイート(RC4, 3DES など)を無効化する
  • SSL Labs(ssllabs.com)で設定をテストする

関連トピック