Django アプリの通信を安全にするため、Let's Encrypt を使って Nginx に無料の SSL 証明書を導入し、HTTPS を有効化する手順を解説します。
ウェブサイトを安全に運営するためには、HTTP ではなく HTTPS(SSL/TLS) を使用することが推奨されます。
✅ HTTPS のメリット
本記事では、Let's Encrypt を使って無料で SSL 証明書を導入し、HTTPS を有効化する手順 を解説します。
Let's Encrypt の SSL 証明書を取得・管理するために、Certbot
をインストールします。
BASHapt update && apt install -y certbot python3-certbot-nginx
インストール後、バージョン確認。
BASHcertbot --version
✅ 出力例
certbot 1.x.x
以下のコマンドで Let's Encrypt から証明書を取得し、Nginx に自動設定します。
BASHcertbot --nginx -d yourdomain.com -d www.yourdomain.com
✅ 解説
--nginx
→ Nginx の設定を自動更新-d yourdomain.com
→ 証明書を取得するドメイン(複数可)Let's Encrypt の証明書は 90 日ごとに更新 する必要があります。
以下のコマンドで手動更新可能。
BASHcertbot renew --dry-run
また、自動更新のために cron
に追加。
BASHcrontab -e
以下の行を追加。
0 3 * * * certbot renew --quiet
✅ 毎日午前 3 時に自動更新を実行
証明書の取得後、Nginx の設定を修正。
BASHnano /etc/nginx/sites-available/myproject
以下のように HTTPS 用の設定を追加。
NGINXserver { listen 80; server_name yourdomain.com www.yourdomain.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name yourdomain.com www.yourdomain.com; ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; location / { proxy_pass http://unix:/home/myuser/django_project/gunicorn.sock; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
✅ 変更点
listen 443 ssl;
→ HTTPS ポートを有効化ssl_certificate
/ ssl_certificate_key
→ Let's Encrypt の証明書を指定return 301 https://$host$request_uri;
→ HTTP を HTTPS にリダイレクトBASHsystemctl restart nginx
ブラウザで https://yourdomain.com
にアクセスし、安全な接続(鍵マーク) が表示されることを確認。
Let's Encrypt を使うことで、無料で HTTPS 対応の Django サーバー を構築できます。
回 | タイトル | リンク |
---|---|---|
第 1 回 | Django × VPS デプロイ入門 - はじめに | 詳 細 |
第 2 回 | VPSの契約から初期設定まで | 詳 細 |
第 3 回 | Python & Django 環境をセットアップ | 詳 細 |
第 4 回 | Gunicorn による Django アプリの運用 | 詳 細 |
第 5 回 | Nginx をリバースプロキシとして設定 | 詳 細 |
第 6 回 | Let's Encrypt を使った HTTPS の設定 | この記事 |
第 7 回 | ファイアウォールとセキュリティ設定 | 詳 細 |
第 8 回 | Django アプリの自動起動の設定(systemd) | 詳 細 |
第 9 回 | デプロイの自動化(Fabric を活用) | 詳 細 |
第 10 回 | デプロイのベストプラクティス | 詳 細 |
当サイトの情報は、一般的な参考情報として提供しております。
正確な情報の掲載に努めておりますが、その内容の正確性・完全性・最新性を保証するものではありません。
記事の内容をご利用の際は、ご自身の責任において判断し、必要に応じて専門家にご相談ください。
当サイトの情報の利用により生じたいかなる損害についても、一切の責任を負いかねますのでご了承ください。
※ 本ページでは、著作権法に基づき、適正な引用の範囲内でコンテンツを紹介しています。
オリジナルの情報は発信元をご確認ください。
もし問題がありましたら、こちら からお問い合わせください。