2026年7月23日
2026年7月23日
ApacheのSSL証明書を更新する方法
はじめに
この記事では、Apache HTTPサーバー上でSSL証明書を更新する方法について解説します。SSL証明書は、ウェブサイトのセキュリティを確保するために必須であり、定期的な更新により、不正アクセスや情報漏洩などのリスクを軽減できます。
症状・背景
このテーマが必要になる主な場面は以下の通りです:
- SSL証明書が切れる前に自動で更新したい。
- 自動化により運用効率を向上させたい。
- 証明書の有効期限を確認するため。
手順・設定方法
ステップ1: SSL証明書の自動更新設定を行う
# Let's Encryptを使用して自動でSSL証明書を取得するため、certbotパッケージをインストールします。
sudo apt update && sudo apt install certbot python3-certbot-apache -y
# Apache用のcertbotプラグインを有効化します。
sudo certbot --apache
ステップ2: 自動更新スクリプトを作成する
# /etc/cron.d/certbot-auto-renew というファイルを作成し、cronジョブとして設定します。
echo "0 4 */30 * * root test -x /usr/bin/certbot && certbot renew --quiet" | sudo tee /etc/cron.d/certbot-auto-renew > /dev/null
# 設定を有効化するためにcronサービスを再起動します。
sudo systemctl restart cron
ステップ3: 自動更新の確認とテストを行う
# 1回だけ証明書を強制的に更新して確認します。
sudo certbot renew --dry-run
# 更新が正しく行われたことを確認します。
journalctl -u certbot-auto-renew.service
ステップ4: 実践/トラブルシュート/監視
# Apacheの設定ファイルを確認し、SSL証明書が正しく適用されているかをチェックします。
sudo cat /etc/apache2/sites-enabled/000-default-le-ssl.conf | grep -i ssl_certificate
注意事項
- 証明書が切れる前に自動更新が行われることを確認してください。
- Let's Encryptの証明書は90日間有効なので、定期的にチェックしておきましょう。
- 自動化スクリプトのエラーメッセージには注意し、必要に応じて修正を行いましょう。
まとめ
1. certbotを使用: Let's Encryptから無料でSSL証明書を取得し、自動更新を設定します。
2. cronによる定期実行: 証明書の有効期限が切れる前に自動で更新するためのcronジョブを作成します。
3. 確認とテスト: 更新が正しく行われたことを確認するために、一度だけ証明書を強制的に更新します。
4. 監視: 自動化されたプロセスが正常に動作しているか定期的にチェックしましょう。
関連記事: