2026年5月22日
2026年5月22日
NginxのSSL証明書を自動更新する方法
はじめに
Nginxはパフォーマンスが高く、設定も比較的簡単なWebサーバーです。しかし、SSL証明書の有効期限が切れる前に自動的に更新する必要があるため、手動で更新作業を忘れるとサイトのセキュリティに影響がでます。この記事では、Let's Encryptを使用してNginxのSSL証明書を自動的に更新する方法を解説します。
症状・背景
- Nginxサーバー上でのSSL証明書の有効期限管理が手間になり、定期的な確認や更新作業が必要です。
- 重要なデータや個人情報の扱いがある場合、SSL証明書の不備は重大なセキュリティリスクとなります。
手順・設定方法
ステップ1: Let’s Encryptクライアントのインストール
# Ansibleを使用してcertbotをインストールします。
sudo apt-get update && sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx
ステップ2: NginxのSSL証明書を更新
# Nginx用のLet's Encrypt SSL証明書を更新します。
sudo certbot --nginx -d example.com -d www.example.com
ステップ3: 自動更新スクリプトを作成
# /etc/cron.daily/certbot-autorenew.shに以下の内容を記述します。
#!/bin/bash
certbot renew --quiet
service nginx reload
### ステップ4: 実践/トラブルシュート/監視
```bash
# crontab -lでcronのリストを確認し、追加が正しく反映されていることを確認します。
sudo chmod +x /etc/cron.daily/certbot-autorenew.sh
注意事項
- Let's Encryptは90日間有効な証明書しか発行しないため、自動更新スクリプトは適切に設定して定期的に実行させる必要があります。
- サイトを停止せずにssl証明書の更新を行うことができますが、一時的なサービス中断の可能性も考慮する必要があります。
まとめ
1. SSL証明書の自動更新: Let's Encryptを使用することで、Nginxで利用されるSSL証明書が定期的に自動更新されます。
2. 手動操作を最小限に: 自動化されたプロセスにより、管理者は証明書管理に関してストレスを感じにくくなります。
3. 信頼性の向上: SSL/TLS認証はユーザーからの信頼を高め、サイトの安全性を確保します。
4. 運用負荷軽減: 定期的な手動更新作業から解放され、他の重要な管理タスクに集中できます。
関連記事: