本文へスキップ
重要 SSL/TLS証明書 47日間ルール正式決定 — ACME自動更新の導入を推奨しております。 Phase 2(100日へ短縮)まで 306日
300,000枚 累計発行
17,206社 利用中
19年 運営
24時間365日 自動発行
NNginx

Nginx への SSL/TLS 証明書インストール

現在の主流Webサーバ Nginx での SSL/TLS 証明書インストール手順。
2026年版の推奨設定(TLS 1.3 / HTTP/2 / HSTS)も含めて解説します。

🛠️ 事前準備

  • SSL ストアから取得した サーバ証明書example.com.crt
  • CSR 作成時の 秘密鍵example.com.key
  • 中間 CA 証明書(認証局から提供)
  • Nginx 1.18 以降がインストール済み

📋 手順

  1. fullchain 形式に結合

    Nginx では サーバ証明書 + 中間CA証明書を1ファイルに結合するのが一般的です。

    $ cat example.com.crt intermediate.crt > example.com.fullchain.crt
    💡 順序が重要 サーバ証明書を先に、中間CA証明書を後に結合します。
  2. 証明書ファイルの配置

    $ sudo mkdir -p /etc/nginx/ssl
    $ sudo cp example.com.fullchain.crt /etc/nginx/ssl/
    $ sudo cp example.com.key /etc/nginx/ssl/
    $ sudo chmod 644 /etc/nginx/ssl/example.com.fullchain.crt
    $ sudo chmod 600 /etc/nginx/ssl/example.com.key
  3. Nginx 設定ファイルの作成

    /etc/nginx/conf.d/example.com.conf(2026年推奨設定)
    server {
        listen 443 ssl;
        listen [::]:443 ssl;
        http2 on;
        server_name example.com www.example.com;
    
        ssl_certificate     /etc/nginx/ssl/example.com.fullchain.crt;
        ssl_certificate_key /etc/nginx/ssl/example.com.key;
    
        ssl_protocols       TLSv1.2 TLSv1.3;
        ssl_ciphers         HIGH:!aNULL:!MD5:!3DES;
        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 1.1.1.1 valid=300s;
    
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
        add_header X-Content-Type-Options "nosniff" always;
        add_header X-Frame-Options "SAMEORIGIN" always;
    
        root /var/www/html;
        index index.html;
    }
    
    server {
        listen 80;
        server_name example.com www.example.com;
        return 301 https://$host$request_uri;
    }
  4. 設定ファイルの構文チェック

    $ sudo nginx -t
    nginx: configuration file /etc/nginx/nginx.conf test is successful
  5. Nginx の再読み込み

    $ sudo nginx -s reload
  6. 動作確認

    $ openssl s_client -connect example.com:443 -servername example.com < /dev/null

⚡ RSA + ECC デュアル証明書

Nginx はRSA と ECC の両方の証明書を同時に提供できます。

ssl_certificate     /etc/nginx/ssl/example.com.rsa.fullchain.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.rsa.key;
ssl_certificate     /etc/nginx/ssl/example.com.ecc.fullchain.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.ecc.key;

❓ よくあるご質問

Q. ブラウザに「保護されていません」と表示されます

主な原因:中間CA証明書が結合されていない、結合順序が逆、コモンネーム不一致。詳しくは トラブルシューティング

Q. certbot で完全自動化したい

certbot --nginx 一発で完全自動化できます。詳しくは certbot 使い方