Ubuntu: NginxでリバースプロキシとSSL

Ubuntu 20.04でNginxでリバプロとSSL設定をよく行うのでメモ

まずはnginxとcertbotをインストールする

$ sudo apt install nginx certbot python3-certbot-nginx -y

続いてLetsEncryptの証明書を取得

$ sudo certbot --nginx -d hoge.example.com

諸々質問に答えてSSLインストール完了。

そして リバプロ設定を /etc/nginx/sites-available/default に記入する。
しかし、以降certbotが証明書更新をする時にはHTTP80番ポートを使って更新するので、リバプロ設定はSSL443番だけにしておいた。

server {
    #80番用
    listen 80;
    server_name _;
    #中略
}

server {
    #443番用
    listen 443 ssl;
    server_name hoge.example.com;

    location / {
            proxy_pass http://localhost:8080;
            proxy_pass_request_headers on;
    }
    #以下証明書設定など
    #
}

そしてnginxを再起動

$ sudo systemctl restart nginx

これでHTTPはそのままnginxのhtmlコンテンツを見せて、HTTPSの443番だけをlocalhost:8080に転送する。