2026年9月28日
2026年9月28日
WordPressのCertificate Has Expiredエラー解決
はじめに
この記事では、WordPressサイトで「Certificate Has Expired」エラーが発生した場合の対処法について解説します。サーバー証明書の期限切れはWebサイトのセキュリティと信頼性を大きく損なう可能性があります。SSL/TLS証明書を更新することで、この問題を迅速に解決できます。
症状・背景
- サイトへのアクセス時に「Certificate Has Expired」の警告メッセージが表示される
- ブラウザでサイトを開くとセキュリティ上のリスクがあると警告される
- HTTPS接続が確立されず、サイトにアクセスできない
- WordPressダッシュボードや管理画面にログインできなくなる
手順・設定方法
ステップ1: 証明書の有効期限を確認する
# あなたのサーバーで使用している証明書ファイルを確認します。
ls /etc/ssl/certs/
# 読み込み中のSSL/TLS証明書と秘密鍵を表示します(Apacheの場合)
openssl x509 -in /path/to/server.crt -noout -text
ステップ2: 新しい証明書を取得する
# Let's Encryptを使用して新しいSSL証明書を取得します。
sudo certbot --apache -d example.com -d www.example.com
# 更新された証明書と秘密鍵の場所を確認します。
ls /etc/letsencrypt/live/example.com/
ステップ3: 新しい証明書をApacheにインストールする
# ApacheのSSL設定ファイルを開きます(通常は/etc/apache2/sites-available/default-ssl.conf)。
sudo nano /etc/apache2/sites-available/default-ssl.conf
# 証明書と秘密鍵のパスを新しいものに更新します。
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
# 変更を保存し、Apacheを再起動して変更を適用します。
sudo systemctl restart apache2
ステップ4: 新しい証明書をNginxにインストールする
# NginxのSSL設定ファイルを開きます(通常は/etc/nginx/sites-available/default)。
sudo nano /etc/nginx/sites-available/default
# 証明書と秘密鍵のパスを新しいものに更新します。
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# 変更を保存し、Nginxを再起動して変更を適用します。
sudo systemctl restart nginx
注意事項
- 更新前のバックアップを作成すること。証明書の更新中に問題が発生した場合に備えて、既存の設定ファイルを安全に保管する。
- 自動更新スクリプトを使用すること。Let's Encryptは3か月間有効な無料証明書を提供しますが、自動更新スクリプトを利用することで手間を省けます。
- セキュリティ上の注意:SSL/TLSの設定に誤りがある場合、サイトへのアクセスが危険な状態になる可能性があります。設定を確認し、必要に応じて専門家の助けを求めること。
- パフォーマンス/運用上の注意:SSL/TLSの性能はサーバーとブラウザの間で異なる場合があり、高速化のためにオプション(HSTS、OCSP Stapling等)を考慮すること。
まとめ
1. 証明書の確認: SSL/TLS証明書が有効期限切れになっているか確認します。
2. 新しい証明書取得: Let's Encryptや他のプロバイダーから新しいSSL/TLS証明書を取得します。
3. Apache設定更新: 新しい証明書をApacheのSSL設定に反映させます。
4. Nginx設定更新: 新しい証明書をNginxのSSL設定に反映させます。
5. 自動更新スクリプト利用: Let's Encryptなどの無料プロバイダーを使用して、証明書の定期的な更新を自動化します。
関連記事: