SSLは歴史的名称、現在はTLS。ブラウザの「鍵マーク」はTLSで暗号化されている状態。言い間違えても通じるが、正式にはTLSと呼ぶのが正確です。
TLS1.3は往復回数が少なく速い。HTTP/2(ALPN: h2)やHTTP/3(QUIC+TLS1.3)とも相性◎。
| 種類 | 何を確認する? | 用途の目安 |
|---|---|---|
| DV(Domain Validation) | ドメインの所有権 | 多くのサイトはこれで十分(Let’s Encrypt等) |
| OV(Organization Validation) | 企業実在+ドメイン | 法人サイトで“社名確認”の要件がある場合 |
| EV(Extended Validation) | 厳格な実在確認 | 近年は表示差が薄く、必須でないことが多い |
| ワイルドカード | *.example.com 等の下位サブドメイン | サブドメイン乱立時に便利(ACME DNS-01など) |
fullchain.pem)。Strict-Transport-Security: max-age=31536000; includeSubDomains(プリロードは慎重に)。h2)とHTTP/3(QUIC)を有効化。| 症状 | 原因 | 対処 |
|---|---|---|
| NET::ERR_CERT_AUTHORITY_INVALID | 自己署名/中間証明書欠落 | fullchainを配備、正式CAを使用 |
| ERR_CERT_COMMON_NAME_INVALID | SANにFQDNが無い | 証明書のSAN(SubjectAltName)を確認 |
| Mixed Content | HTTPリソース読込 | 全リソースをHTTPS化、相対URL見直し |
| Handshake失敗 | 古暗号/プロトコル不一致 | サーバ側のTLSバージョン・暗号スイートを更新 |
# サーバ証明書とチェーン確認
openssl s_client -connect example.com:443 -servername example.com -showcerts
# HTTP/2/3のALPN確認(curl 8+ など)
curl -I --http2 https://example.com
# HTTP/3(対応環境のみ)
curl -I --http3 https://example.com
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# ...(root/proxy設定)
}
server {
listen 80;
server_name example.com;
return 301 https://example.com$request_uri;
}