TLSハンドシェイクでは何をしてるの?
①クライアントが対応する暗号スイートの一覧を送信(ClientHello)、②サーバーが証明書と選択した暗号スイートを返信(ServerHello)、③クライアントが証明書を検証(CAの署名を確認)、④鍵交換(Diffie-Hellman等)で共通の暗号鍵を生成、⑤以降はこの共通鍵でAES暗号化通信。証明書で「本物のサーバーか」を確認するのが重要だよ
TLS 1.3で何が変わった?
①ハンドシェイクが2-RTTから1-RTTに短縮(高速化)、②脆弱な暗号スイートを廃止(RC4、SHA-1等を完全削除)、③0-RTTモード(再接続時にハンドシェイクなしでデータ送信可能)、④サーバー証明書も暗号化(盗聴者にアクセス先ドメインが見えない)。セキュリティとパフォーマンスの両方が向上したよ
SSL証明書のエラーが出たらどうする?
「この接続ではプライバシーが保護されません」は証明書エラー。原因は①期限切れ、②ドメイン名の不一致、③自己署名証明書、④中間証明書の欠落。Let's Encrypt(無料CA)なら自動更新でき、certbotが期限切れを防いでくれる。本番サイトで証明書エラーを放置するのはセキュリティ的にNGだよ
開発者が知っておくべきことは?
①すべてのWebサイトはHTTPS必須(ChromeはHTTPサイトに「安全ではありません」と表示)、②Let's Encryptで無料で証明書取得、③Mixed Content(HTTPSページ内のHTTPリソース)はブロックされる、④TLS 1.2以下はセキュリティリスク。Cloudflareを前段に置くとTLS設定を丸投げできて楽だよ