TLS/SSL
約 4 分で読めます
最終更新: 2026-03-08
TLS/SSL とは
TLS (Transport Layer Security) は、インターネット上の通信を暗号化するプロトコルです。SSL (Secure Sockets Layer) はその前身で、現在は脆弱性のため非推奨ですが、慣習的に「SSL」や「SSL/TLS」と呼ばれることが多いです。
Web ブラウザのアドレスバーに表示される鍵マークと HTTPS は、TLS による暗号化通信が行われていることを示しています。TLS はオンラインバンキング、EC サイト、メール、チャットなど、あらゆるインターネット通信の安全を支える基盤技術です。
TLS の仕組み - ハンドシェイク
TLS 通信は「ハンドシェイク」と呼ばれる手順で始まります。
- Client Hello: クライアントが対応する TLS バージョンと暗号スイートの一覧をサーバーに送信
- Server Hello: サーバーが使用する暗号スイートを選択し、デジタル証明書を送信
- 鍵交換: 公開鍵暗号方式を使って共通鍵を安全に共有
- 暗号化通信開始: 共有した共通鍵で以降の通信を暗号化
TLS 1.3 ではハンドシェイクが 1-RTT (1 往復) に短縮され、TLS 1.2 の 2-RTT から大幅に高速化されました。
TLS 1.3 で変わったこと
TLS 1.3 (RFC 8446、2018 年策定) は単なるマイナーアップデートではなく、プロトコル設計の根本的な見直しが行われました。
証明書の種類と選び方
- DV (Domain Validation): ドメインの所有権のみを検証。Let's Encrypt で無料取得可能。個人サイトやブログに適している。発行まで数分で完了する。
- OV (Organization Validation): 組織の実在性も検証。企業サイトで一般的。発行には数日かかり、登記簿や電話確認が必要。
- EV (Extended Validation): 最も厳格な審査を経て発行。以前はアドレスバーに組織名が緑色で表示されたが、現在の主要ブラウザではこの表示は廃止されている。
証明書の種類による暗号化の強度に違いはありません。違いは「誰がそのドメインを運営しているか」の検証レベルです。個人サイトや中小規模のサービスであれば DV 証明書で十分であり、EV 証明書のコスト (年間数万円から数十万円) に見合う効果は薄れています。
Let's Encrypt と証明書の自動管理
Let's Encrypt は 2016 年に正式サービスを開始した無料の認証局で、ACME (Automatic Certificate Management Environment) プロトコルによる証明書の自動発行・更新を実現しました。現在、Web 上の TLS 証明書の約 3 割が Let's Encrypt によって発行されています。
ACME プロトコルでは、ドメインの所有権を HTTP-01 チャレンジ (指定パスにトークンファイルを配置) または DNS-01 チャレンジ (DNS TXT レコードにトークンを設定) で自動検証します。Certbot や acme.sh などのクライアントツールを使えば、証明書の取得から Web サーバーへの設定、90 日ごとの自動更新まで完全に自動化できます。
AWS 環境では ACM (AWS Certificate Manager) が同様の自動管理を提供しており、CloudFront や ALB に設定した証明書は自動更新されます。
TLS 設定の検証方法
サーバーの TLS 設定が安全かどうかは、以下のツールで検証できます。
- SSL Labs (ssllabs.com): Qualys が提供する無料のオンラインテスト。A+ から F までのグレードで評価され、対応プロトコル、暗号スイート、証明書チェーン、既知の脆弱性 (BEAST、POODLE、Heartbleed 等) を網羅的にチェックする。本番サーバーの定期チェックに最適。
- testssl.sh: コマンドラインで動作するオープンソースツール。内部サーバーやステージング環境など、外部からアクセスできないサーバーのテストに使える。
./testssl.sh example.comで実行。
よくある設定ミスとして、TLS 1.0/1.1 が有効なまま放置されている、弱い暗号スイート (RC4、3DES) が残っている、証明書チェーンに中間証明書が欠落している、HSTS ヘッダーが未設定、といったケースがあります。SSL Labs で B 以下の評価が出た場合は、早急に設定を見直すべきです。
よくある誤解
- SSL と TLS は別の技術
- TLS は SSL の後継プロトコルです。SSL 3.0 の後に TLS 1.0 が策定され、現在は TLS 1.2/1.3 が使われています。「SSL 証明書」という呼称は慣習的なもので、実際には TLS 証明書です。
- HTTPS なら絶対に安全
- HTTPS は通信経路の暗号化を保証しますが、接続先のサイト自体が安全かどうかは別問題です。フィッシングサイトも HTTPS を使用しているため、鍵マークだけで信頼してはいけません。
TLS 1.2 と TLS 1.3 の比較
TLS 1.2
2008 年策定。ハンドシェイク 2-RTT。多数の暗号スイートをサポート (一部は安全性が低い)。前方秘匿性はオプション。
TLS 1.3
2018 年策定。ハンドシェイク 1-RTT。安全な暗号スイートのみに限定。前方秘匿性が必須。0-RTT 再接続をサポート。