TLS 証明書
HTTPS 通信を実現するための電子証明書で、サーバーの身元を証明し通信を暗号化する
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 証明書の理解を深めるには関連書籍が参考になる。
この記事は役に立ちましたか?
関連用語
HTTPS / TLS
HTTP 通信を TLS で暗号化し、盗聴・改ざん・なりすましを防ぐプロトコル
mTLS
クライアントとサーバーが互いに証明書を検証し、双方向で認証する TLS の拡張
CloudFront
AWS の CDN サービスで、世界中のエッジロケーションからコンテンツを低レイテンシで配信する
ACM
AWS Certificate Manager の略で、SSL/TLS 証明書を無料で発行・管理・自動更新するサービス
DNS
ドメイン名を IP アドレスに変換するインターネットの名前解決システム
TCP 3-way ハンドシェイク
TCP 接続を確立するための 3 段階の手順で、SYN → SYN-ACK → ACK の順で行われる
関連する記事
技術書のサンプルコードが動かないときの対処法
技術書のサンプルコードがエラーで動かない原因と、自力で解決するための具体的な手順を解説します。バージョン違い、環境差異、誤植への対応方法。
技術書のタイトルに隠された法則 - 「入門」「実践」「詳解」の意味を読み解く
技術書のタイトルに使われる「入門」「実践」「詳解」などのキーワードには暗黙のルールがあります。タイトルだけで本のレベルと内容を見抜くコツを紹介します。
技術書を Kindle で読むコツ - 電子書籍ならではの活用術
技術書を Kindle で効率的に読むための具体的なテクニックを紹介します。ハイライト、検索、フォントサイズの調整など、紙にはない電子書籍の強みを活かす方法。