CentOS Stream 9
Sponsored Link

Nginx : SSL/TLS の設定
2022/03/17
 
SSL/TLS での暗号化通信ができるように設定します。
[1]
[2] Nginx の設定です。例として、デフォルトサイトに対して SSL/TLS を有効化します。
[root@www ~]#
vi /etc/nginx/conf.d/ssl.conf
# 新規作成
# サーバー名や証明書のパスは自身の環境に置き換え

server {
    listen       443 ssl http2 default_server;
    listen       [::]:443 ssl http2 default_server;
    server_name  www.srv.world;
    root         /usr/share/nginx/html;

    ssl_certificate "/etc/letsencrypt/live/www.srv.world/fullchain.pem";
    ssl_certificate_key "/etc/letsencrypt/live/www.srv.world/privkey.pem";
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers PROFILE=SYSTEM;
    ssl_prefer_server_ciphers on;

    include /etc/nginx/default.d/*.conf;

    location / {
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

[root@www ~]#
systemctl restart nginx

[3] HTTP リクエストも全て HTTPS へリダイレクトして Always on SSL とする場合は、対応するホスト定義にリダイレクトの設定を追記します。
[root@www ~]#
vi /etc/nginx/nginx.conf
# 80 をリスンしている定義内に追記

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        return       301 https://$host$request_uri;
        server_name  www.srv.world;
        root         /usr/share/nginx/html;

[root@www ~]#
systemctl restart nginx

[4] Firewalld を有効にしている場合は、HTTPS サービスの許可が必要です。HTTPS は [443/TCP] を使用します。
[root@www ~]#
firewall-cmd --add-service=https

success
[root@www ~]#
firewall-cmd --runtime-to-permanent

success
[5] 任意のクライアントコンピューターで Web ブラウザーを起動し、テストページに HTTPS でアクセスします。正常にページが表示されれば OK です。 Always On SSL/TLS を設定した場合は HTTP アクセスして正常にリダイレクトされるかも確認しておきます。
関連コンテンツ