本番環境でSSL証明書エラーが発生した際の原因究明から解決まで、実際のトラブル事例を基に体系的に解説します。
こんな悩みありませんか?
「サイトが突然『この接続ではプライバシーが保護されません』と表示されてアクセスできなくなった」「SSL証明書の更新を忘れていて、クライアントから連絡が来てしまった」「HTTPS設定は完了したはずなのに、なぜかエラーが出る」
本番環境でのSSL証明書トラブルは、Web担当者にとって最も緊張する瞬間の一つです。サイトにアクセスできない状況は、売上機会の損失やユーザーからの信頼失墜に直結するからです。
Fivenine Designでは20年以上の運用実績で様々なSSLトラブルを解決してきました。今回は、実際に遭遇したケースを基に、効率的な解決方法をご紹介します。
よくあるSSL証明書エラーの種類と原因
1. 証明書の期限切れ
症状: 「NET::ERR_CERT_DATE_INVALID」エラー
原因: SSL証明書の有効期限が過ぎている
あるクライアント様では、Let's Encrypt証明書の自動更新が何らかの理由で失敗し、90日後に突然サイトにアクセスできなくなりました。このケースでは、売上に直結するECサイトが3時間停止という深刻な事態となりました。
2. 証明書とドメインの不一致
症状: 「NET::ERR_CERT_COMMON_NAME_INVALID」エラー
原因: 証明書に記載されたドメインと実際のドメインが異なる
# 証明書の対象ドメインを確認
openssl x509 -in certificate.crt -text -noout | grep "DNS:"
WWW付きとWWWなしの設定ミスや、サブドメインの設定漏れが原因となることが多いです。
3. 中間証明書の設定不備
症状: モバイルでは表示されるがPCでエラーになる(またはその逆)
原因: 証明書チェーンが不完全
# Apache設定例
SSLCertificateFile /path/to/certificate.crt
SSLCertificateKeyFile /path/to/private.key
SSLCertificateChainFile /path/to/intermediate.crt
実践的なトラブル解決手順
ステップ1: 現状把握と緊急対応
まず最初に行うべきこと:
- SSL Checkerなどのオンラインツールで証明書の状態を確認
- エラーメッセージを正確に記録
- 複数のブラウザ・デバイスで症状を確認
ある製造業のクライアント様のケースでは、Firefox では正常に表示されるのに Chrome でエラーが出るという症状でした。これは中間証明書の問題で、適切な証明書チェーンを設定することで解決しました。
ステップ2: 原因の特定
# コマンドラインでSSL証明書の詳細を確認
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com
# 証明書の有効期限を確認
openssl x509 -in certificate.crt -dates -noout
ステップ3: 解決策の実装
証明書期限切れの場合:
- 新しい証明書を取得・インストール
- 自動更新の仕組みを再構築
ドメイン不一致の場合:
- 適切なドメインをカバーする証明書に交換
- ワイルドカード証明書の検討
# Nginx設定例(適切な証明書設定)
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
ssl_trusted_certificate /path/to/chain.pem;
}
予防策:同じトラブルを繰り返さないために
1. 監視体制の構築
証明書の期限監視は必須です。あるクライアント様では、期限の30日前、7日前、当日にアラートメールを送信する仕組みを構築しました。結果として、SSL関連のトラブルがゼロになりました。
2. 自動更新の設定
# Let's Encryptの自動更新設定例
# crontabに追加
0 2 * * 1 /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"
3. テスト環境での事前検証
本番環境での作業前に、必ずステージング環境で動作確認を行います。これにより、設定ミスによる本番停止を防げます。
よくある失敗パターンと注意点
失敗例1: 急いで対応して設定を間違える
緊急時こそ、手順書に従って慎重に作業することが重要です。弊社ではSSL証明書更新のチェックリストを用意し、作業漏れを防いでいます。
失敗例2: バックアップを取らずに作業
設定ファイルの変更前には必ずバックアップを取得しましょう。
# 設定ファイルのバックアップ例
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.backup.$(date +%Y%m%d)
失敗例3: DNS設定を見落とす
SSL証明書は正常でも、DNSの設定ミスでアクセスできないケースもあります。証明書とDNS、両方を確認することが大切です。
まとめ:安定したHTTPS環境の実現
SSL証明書のトラブルは、適切な予防策と迅速な対応により解決できます。重要なのは:
- 定期的な監視体制の構築
- 自動更新の仕組みの導入
- 緊急時の対応手順の整備
- テスト環境での事前検証
これらの対策により、クライアント様のサイトは99.9%以上の稼働率を維持できています。
次にすべきこと
まずは現在のSSL証明書の状態を確認しましょう:
- 証明書の有効期限をチェック
- 自動更新の設定状況を確認
- 監視体制の有無を点検
もしSSLの設定や運用でお困りの点がございましたら、Fivenine Designまでお気軽にご相談ください。20年以上の実績を基に、安定したHTTPS環境の構築をサポートいたします。