メモ_XserverVPSで無料SSL(Let's Encrypt)を設定する方法

XserverVPSで無料SSL(Let's Encrypt)を設定する方法についてのメモ。

VPS管理画面で「SSL証明書」というのがあったので、ここから「追加申し込み」をするのかなーと思って(Let's Encryptもメニューにあったので)申し込んだけど、何も起きず何日か待ちぼうけを食らっていたので、ちゃんとマニュアルを読んだら、手動で設定する方法が、とても丁寧にのっていた。。。→手順はこちら

 

手順の通りで何もトラブルなく完了できたけど、最後のnginxのconf設定だけ自分の環境に合わせて変更したので、そのメモ。

nginx + Flask  / 5000番->443リダイレクトでSSL有効化

Flaskで構築したアプリをwaitressで5000番ポートで起動していて、nginxでリバースプロキシさせて、wwwありと無しの両方ともに HTTTPS になるように動かしたい。

内容としては、最初の server ブロックがポート 80 でのリクエストを 443 の HTTPS にリダイレクトし、2つ目の server ブロックが実際の HTTPS 通信を処理して、Flask アプリケーションへのリバースプロキシを実行する。server_name ディレクティブには、マイドメイン.com と www.マイドメイン.com の両方が含まれている。

マイドメインのところは、実際に設定したいドメイン名が入る。confファイルは /etc/nginx/conf.d/ 配下にあるものは全てインクルードされるので、管理しやすい名称(アプリ名.conf とか)であればok。


server {
    server_name マイドメイン.com www.マイドメイン.com;

    # ポート 80 へのリクエストを 443 にリダイレクト
    listen 80;
    return 301 https://$host$request_uri;
}

server {
    server_name マイドメイン.com www.マイドメイン.com;

    # HTTPS の設定
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/マイドメイン/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/マイドメイン/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        proxy_pass http://localhost:5000/;
    }
}