ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
TLS(Transport Layer Security)は、TCP の上に被せて通信を暗号化する標準プロトコルです。かつて Netscape が SSL(Secure Sockets Layer)として開発しましたが、SSL 2.0/3.0 には深刻な脆弱性が見つかり、現在はすべて廃止されています。後継として IETF が標準化したものが TLS であり、TLS 1.0/1.1 も非推奨となった今、実務で使うのは TLS 1.2 と TLS 1.3 の 2 つです。習慣的に「SSL 証明書」「SSL 化」と呼ばれますが、中身は TLS だと理解しておくと混乱しません。HTTPS は、この TLS の上に HTTP を載せたものに過ぎません。
TLS が守るのは 3 つの性質です。機密性(盗聴されても中身が読めない)、完全性(途中で改ざんされたら気づく)、認証(接続先が名乗り通りの相手である)。この 3 つを、公開鍵暗号と対称鍵暗号、そして証明書という 3 つの道具で実現します。
仕組み
TLS の核心は「最初に高コストな公開鍵暗号で安全に鍵を共有し、以降は高速な対称鍵暗号で本文を流す」というハイブリッド方式です。
対称鍵暗号(AES など)は暗号化と復号に同じ鍵を使い、非常に高速です。しかし鍵を相手にどう渡すかが問題になります。そこで 公開鍵暗号(RSA や楕円曲線)を使い、誰でも暗号化できるが秘密鍵を持つ者だけが復号できる仕組みで、対称鍵の素材を安全に交換します。TLS 1.3 では鍵交換に必ず (EC)DHE(楕円曲線ディフィー・ヘルマン)を用い、これにより前方秘匿性(PFS / Forward Secrecy)が保証されます。PFS とは、仮にサーバーの秘密鍵が将来盗まれても、過去に記録された通信を遡って復号できない性質のことです。
ハンドシェイクの流れ(TLS 1.3 の場合)は次の通りです。(1) クライアントが ClientHello で対応する暗号スイートと鍵交換用の公開値、接続先ホスト名(SNI)を送る。(2) サーバーが ServerHello で暗号スイートを 1 つ選び、自分の公開値と証明書を返す。(3) クライアントが証明書の検証(署名・有効期限・ホスト名・CAの信頼チェーン)を行う。(4) 双方が共有秘密から同じ対称鍵を導出し、以降は暗号化された通信に切り替わる。TLS 1.2 では往復が 2 回(2-RTT)必要でしたが、TLS 1.3 では 1-RTT に短縮され、再接続時は 0-RTT も可能になりました。
SNI(Server Name Indication)は、ClientHello に接続先ホスト名を含める拡張です。1 つの IP アドレスで複数のドメイン(複数証明書)をホストする際、サーバーがどの証明書を返すべきか判断するために使われます。共有ホスティングや CDN では必須の仕組みです。
設定・実用例
OpenSSL コマンドでサーバーの TLS 設定を確認できます。バージョンや証明書チェーンを点検する際の定番です。
# 接続して証明書チェーンとプロトコルを確認
openssl s_client -connect example.com:443 -servername example.com
# TLS 1.3 のみを強制して疎通確認
openssl s_client -connect example.com:443 -tls1_3
# サーバーが対応する暗号スイート一覧(nmap)
nmap --script ssl-enum-ciphers -p 443 example.comNginx で TLS 1.2/1.3 のみを許可し、前方秘匿性のある暗号スイートに限定する設定例です。
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
add_header Strict-Transport-Security "max-age=63072000" always;HSTS ヘッダーを付けることで、ブラウザに「次回以降は最初から HTTPS で接続せよ」と指示でき、常時SSL化を確実にします。
主な用途
- HTTPS(Web):もっとも一般的な用途。ログイン情報やフォーム入力を保護する
- メール:SMTP/IMAP/POP3 を STARTTLS や暗黙 TLS で保護する
- VPN・API 通信:マイクロサービス間や外部 API 呼び出しの暗号化
- DB 接続:MySQL/PostgreSQL のクライアント-サーバー間暗号化
比較テーブル
| 項目 | TLS 1.2 | TLS 1.3 |
|---|---|---|
| ハンドシェイク | 2-RTT | 1-RTT(再接続 0-RTT) |
| 鍵交換 | RSA / DHE / ECDHE | (EC)DHE のみ(PFS 必須) |
| 前方秘匿性 | 選択可(RSA 鍵交換だと無し) | 常に有効 |
| 暗号スイート | 多数(弱いものも残存) | 5 種に厳選(AEAD のみ) |
| 旧式暗号 | RC4・3DES など設定次第で使用可 | すべて廃止 |
注意点
- SSL 2.0/3.0、TLS 1.0/1.1 は無効化する。POODLE・BEAST など既知の攻撃が成立する
- 証明書の有効期限切れは即サービス停止につながる。自動更新(Let's Encrypt等)を入れる
- 暗号スイートは AEAD(GCM・ChaCha20-Poly1305)を優先し、CBC や RC4 を避ける
- TLS は経路を守るだけで、サーバー側に届いた後の保管・処理は別途守る必要がある
関連リンク
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- TLS/SSLの仕組み
- 証明書と認証局(CA)
- ファイアウォール
- iptables/nftables
- VPN
- IPsec
- WireGuard
- ゼロトラストネットワーク
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?