TLS 証明書

HTTPS 通信を実現するための電子証明書で、サーバーの身元を証明し通信を暗号化する

セキュリティHTTP

TLS 証明書とは

TLS 証明書は、HTTPS 通信を実現するための電子証明書で、サーバーの身元を証明し、クライアントとサーバー間の通信を暗号化する。認証局 (CA) が発行し、ブラウザが信頼チェーンを検証する。

TLS ハンドシェイク

クライアント → サーバー: ClientHello (対応する暗号スイート)
サーバー → クライアント: ServerHello + 証明書
クライアント: 証明書を検証 (CA の署名、有効期限、ドメイン)
クライアント ↔ サーバー: 鍵交換 (ECDHE)
→ 以降は共通鍵で暗号化通信

証明書の種類

種類 検証レベル 用途
DV (Domain Validation) ドメインの所有権 一般的な Web サイト
OV (Organization Validation) 組織の実在性 企業サイト
EV (Extended Validation) 厳格な組織審査 金融機関

ACM は無料で TLS 証明書を発行し、自動更新する。CloudFront、ALB、API Gateway に関連付けできる。

CloudFront の証明書は us-east-1 リージョンで発行する必要がある。

証明書の有効期限

ACM は 13 ヶ月で自動更新、Let's Encrypt は 90 日で certbot による自動更新、商用 CA は 1〜2 年で手動更新が必要。

証明書の失効

有効期限切れはブラウザが警告を表示する。秘密鍵が漏洩した場合は証明書を失効 (CRL/OCSP) させる。ドメインを移管した場合は新しい証明書を発行する。

よくある失敗

証明書の更新忘れは ACM の自動更新で防ぐ。DNS 検証の未完了は CNAME レコードを確認する。CloudFront には us-east-1 で発行した証明書が必要。Mixed Content は全リソースを HTTPS にして解消する。

TLS 証明書の理解を深めるには関連書籍が参考になる。

関連用語