すべての SSL 記事 SSL と証明書

2026年のSSL/TLSベストプラクティス

SSL/TLSの設定は大幅に変化しました。これは2026年現在のベストプラクティスの最新状況です — 有効にすべきもの、無効にすべきもの、今後の変更について解説します。

プロトコルバージョン

プロトコルステータスアクション
SSL 2.0, 3.0破損無効化 — 重大な脆弱性(POODLE、DROWN)
TLS 1.0非推奨(2021年)無効化 — BEAST脆弱性
TLS 1.1非推奨(2021年)無効化 — 最新暗号非対応
TLS 1.2安全有効化 — AEAD暗号のみ
TLS 1.3現在の標準有効化 — 最速、最も安全

Nginx: ssl_protocols TLSv1.2 TLSv1.3; Apache: SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

暗号スイート

TLS 1.3(設定不要)

5つの暗号スイートすべてが安全です。カスタマイズしようとしないでください — これ以上良くはできません。

TLS 1.2(AEADのみに制限)

# Nginx
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers off;

ルール:

  • ECDHE-*スイートのみ — 前方秘匿性を確保
  • *-GCM-*または*-CHACHA20-*のみ — AEAD暗号のみ
  • CBC暗号なし — BEAST、Lucky13に脆弱
  • ssl_prefer_server_ciphers off — クライアントに選択させる(最新クライアントが最適を選択)

証明書管理

プラクティス理由
ECDSA P-256鍵を使用RSA 2048より小さく高速
更新を自動化2029年までに47日の有効期間で手動更新が非現実的に
fullchain.pemを配信証明書チェーンエラーを防止
証明書の有効期限を監視90日中60日目にアラートを設定
証明書の透明性を監視不正な証明書をキャッチ
更新時に鍵をローテーション証明書間で秘密鍵を再利用しない

セキュリティヘッダー

# HSTS -- 常にHTTPSを使用(短いmax-ageから始め、後で増やす)
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;

# MIMEタイプスニッフィングを防止
add_header X-Content-Type-Options "nosniff" always;

# クリックジャッキングを防止
add_header X-Frame-Options "SAMEORIGIN" always;

# 安全でないサブリソースをアップグレード
add_header Content-Security-Policy "upgrade-insecure-requests" always;

HSTSの詳細 →

パフォーマンス最適化

設定設定値メリット
HTTP/2listen 443 ssl http2;多重化、ヘッダー圧縮
セッションキャッシュssl_session_cache shared:SSL:10m;再訪問者のハンドシェイク回避
セッションチケットオフssl_session_tickets off;前方秘匿性の向上
OCSPステープリングssl_stapling on;高速な証明書検証、プライバシー向上
早期データ(0-RTT)TLS 1.3デフォルトゼロ遅延の再開(慎重に使用)

完全なNginx設定(本番対応)

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name example.com www.example.com;

    ssl_certificate     /etc/ssl/fullchain.pem;
    ssl_certificate_key /etc/ssl/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
    ssl_prefer_server_ciphers off;

    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;

    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options "SAMEORIGIN" always;

    root /var/www/html;
}

server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

テスト: SSL Labsにドメインを貼り付けてください — この設定で**A+**が取れるはずです。

やってはいけないこと

悪い慣行理由代わりにすべきこと
ssl_protocols TLSv1 TLSv1.1;非推奨、脆弱TLS 1.2 + 1.3のみ
ssl_ciphers ALL;弱い暗号を含む明示的なECDHE + AEADリスト
ssl_prefer_server_ciphers on;(TLS 1.3)不要 — TLS 1.3暗号はすべて安全off
fullchain.pemの代わりにcert.pemを使用チェーン欠落 → 信頼エラーNginxには常にfullchain.pem
本番で自己署名証明書ブラウザ警告、信頼なしLet’s Encrypt(無料)
同じ秘密鍵を何年も使用被害封じ込めを制限更新ごとにローテーション
HSTSなしダウングレード攻撃に脆弱テスト後に有効化
HSTSのmax-age=0実質的にHSTSを無効化300から始め、63072000に増やす

よくある質問

SSL設定をテストするにはどうすればいいですか?

SSL Labs Server Test — ドメインを入力し、文字評価(A-F)の詳細レポートを取得。プロトコルサポート、暗号強度、チェーンの有効性、既知の脆弱性を確認します。

どのグレードを目標にすべきですか?

本番サイトにはA+。必要なもの:TLS 1.2以上のみ、AEAD暗号、有効なチェーン、長いmax-ageのHSTS。上記の設定でA+が達成できます。

SSL設定をどのくらいの頻度でレビューすべきですか?

年に一度、または新しい脆弱性が発表されたとき。Let’s Encryptのステータスページを購読し、Mozilla SSL Configuration Generatorで最新の推奨事項を確認してください。

正しい設定を生成してくれるツールはありますか?

はい — Mozilla SSL Configuration Generator。サーバー(Nginx、Apacheなど)とバージョンを選択すると、推奨設定が生成されます。「Modern」プロファイルがこの記事のプラクティスに一致します。

関連記事

SSL と証明書 2026-05-08
TLS 1.3とは?変更されたすべて
TLS 1.3は現在の暗号化標準。高速なハンドシェイク、必須の前方秘匿性、レガシーアルゴリズムなし。TLS 1.2からの変更点、有効化方法、強制すべきかを解説します。
SSL と証明書 2026-05-08
前方秘匿性(Perfect Forward Secrecy)とは?
前方秘匿性により、すべてのTLS接続が固有の鍵を使用します。サーバーの秘密鍵が侵害されても、過去の通信は復号できません。仕組みと有効化の確認方法を解説します。
SSL と証明書 2026-05-08
HSTS:HTTP Strict Transport Securityの解説
HSTSはブラウザに常にHTTPSを使用するよう指示します。HSTSの設定方法、max-ageの選択、preloadの追加タイミング、設定ミスのリスクを解説します。
デプロイ 2026-05-08
NginxにSSL証明書をインストールする方法
NginxにSSL証明書をインストールするステップバイステップガイド。ファイルアップロード、完全なサーバーブロック設定、TLSベストプラクティス、HTTP/2、HSTS、リダイレクト設定、テスト、6つの一般的なエラーのトラブルシューティングを解説します。
ブラウザで無料 SSL 証明書を取得
インストール不要、アカウント不要。秘密鍵は常にデバイスに残ります。
証明書を取得