TLS 証明書

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

セキュリティHTTP

TLS 証明書とは

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

TLS ハンドシェイク

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 証明書の理解を深めるには関連書籍が参考になる。

この記事は役に立ちましたか?

関連用語

関連する記事