RFC 2818 - TLS 上の HTTP (HTTPS) - クイックリファレンス (Quick Reference)
クイックリファレンス (Quick Reference)
HTTPS vs HTTP
| 機能 | HTTP | HTTPS |
|---|---|---|
| プロトコル | http:// | https:// |
| ポート | 80 | 443 |
| 暗号化 | ❌ 平文 | ✅ TLS 暗号化 |
| 完全性 | ❌ 保護なし | ✅ MAC 保護 |
| 認証 | ❌ サーバー認証なし | ✅ 証明書認証 |
| プライバシー | ❌ 盗聴可能 | ✅ 暗号化通信 |
TLS ハンドシェイク概要 (TLS Handshake Overview)
クライアント サーバー
| |
|--- ClientHello --------------->|
| |
|<-- ServerHello, Certificate ---|
|<-- ServerHelloDone ------------|
| |
|--- ClientKeyExchange --------->|
|--- ChangeCipherSpec ---------->|
|--- Finished ------------------>|
| |
|<-- ChangeCipherSpec -----------|
|<-- Finished -------------------|
| |
|=== 暗号化チャネル =============|
| |
|--- 暗号化 HTTP リクエスト ---->|
|<-- 暗号化 HTTP レスポンス -----|
一般的なツール (Common Tools)
# OpenSSL で証明書を表示
openssl s_client -connect www.example.com:443 -showcerts
# TLS バージョンをテスト
openssl s_client -connect www.example.com:443 -tls1_2
# 証明書の詳細を表示
echo | openssl s_client -connect www.example.com:443 2>/dev/null | \
openssl x509 -noout -text
# cURL で HTTPS を使用
curl -v https://www.example.com