サーバー移転時のSSL証明書切れによるサイト停止への緊急対応方法と、事前防止のチェックリストを実案件をもとに解説します。
SSL証明書切れでサイトが真っ白に...その時あなたはどうしますか?
「サーバー移転は完了したはずなのに、サイトが表示されない...」 「『この接続ではプライバシーが保護されません』の警告が出てしまった」 「クライアントからサイトが見れないと緊急連絡が来た」
こんな経験、ありませんか?
私たちFivenine Designでも、20年以上のWeb制作実績の中で、SSL証明書の移行ミスによるサイト停止を何度も経験してきました。特に最近では、常時SSL化が当たり前となり、証明書の問題は即座にサイト全体の停止につながる深刻な問題となっています。
この記事では、実際に私たちが対応した緊急事例をもとに、SSL証明書切れの緊急対応方法と、二度と同じミスを起こさないための事前チェックリストをお伝えします。中小企業のWeb担当者の方でも、この記事を読めば適切な対応ができるようになります。
なぜSSL証明書切れが起こるのか?移転時の落とし穴
実案件での失敗事例
つい先月、弊社で対応した横浜の製造業クライアントでの事例をご紹介します。
古いレンタルサーバーから新しいクラウドサーバーへの移転プロジェクトでした。サイトのファイル移行、データベースの移行、DNS設定の変更まで、すべて順調に進んでいました。しかし、移転作業完了の翌朝、クライアントから緊急連絡が入りました。
「サイトにアクセスできません。警告画面が出てしまいます」
確認すると、SSL証明書が期限切れになっており、ブラウザが「この接続ではプライバシーが保護されません」という警告を表示していたのです。原因は、移転前サーバーで使用していたSSL証明書の有効期限が移転日の翌日だったこと。そして、新サーバーでの証明書設定を失念していたことでした。
SSL証明書切れが起こる3つの主な原因
1. 有効期限の把握不足 移転スケジュールとSSL証明書の有効期限を照合せずに作業を進めてしまうケース。特に Let's Encrypt など3ヶ月更新の証明書の場合、気づかないうちに期限が近づいていることがあります。
2. 証明書の移行作業漏れ サイトファイルやデータベースの移行に集中し、SSL証明書の設定を後回しにしてしまうケース。「動作確認は http で行って、SSL設定は後で」という流れで忘れてしまいがちです。
3. 新旧サーバーでの証明書形式の違い 移転元と移転先で使用するサーバーソフトウェアが異なる場合(Apache → Nginx など)、証明書ファイルの形式や設定方法の違いで設定に失敗するケース。
【緊急対応】SSL証明書切れでサイト停止した時の復旧手順
Step 1: 現状確認と影響範囲の把握
まず、パニックにならずに現状を正確に把握しましょう。
# SSL証明書の有効期限を確認
openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -dates
# 結果例:
# notBefore=Oct 15 00:00:00 2023 GMT
# notAfter=Jan 15 23:59:59 2024 GMT # ←この日付が過去なら期限切れ
ブラウザでも確認できます:
- Chromeでサイトにアクセス
- アドレスバーの鍵アイコンをクリック
- 「証明書」→「詳細」タブで有効期限を確認
Step 2: 一時的なHTTP接続での動作確認
証明書の問題なのか、サーバー全体の問題なのかを切り分けます。
# HTTP接続での確認
curl -I http://example.com
# 200 OKが返れば、サーバー自体は正常
この段階で、クライアントには「SSL証明書の更新作業中のため一時的にhttpsでアクセスできない状態。復旧まで◯時間程度」と報告しましょう。
Step 3: 緊急SSL証明書の取得と設定
Let's Encrypt を使用する場合(推奨)
# Certbotのインストール(Ubuntu/CentOS)
sudo apt-get install certbot python3-certbot-nginx # Ubuntu
# または
sudo yum install certbot python3-certbot-nginx # CentOS
# SSL証明書の取得
sudo certbot --nginx -d example.com -d www.example.com
# 自動更新の設定
sudo crontab -e
# 以下を追加
0 12 * * * /usr/bin/certbot renew --quiet
商用SSL証明書を使用する場合
既存の証明書がある場合は、証明書ファイルをサーバーにアップロードし設定します。
# Nginxの設定例 (/etc/nginx/sites-available/example.com)
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
ssl_certificate /path/to/intermediate.crt; # 中間証明書も必要
# SSL設定
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE+AESGCM:ECDHE+CHACHA20:DHE+AESGCM:DHE+CHACHA20:!aNULL:!MD5:!DSS;
ssl_prefer_server_ciphers off;
# その他の設定...
}
Step 4: 設定の反映と動作確認
# Nginx設定の文法チェック
sudo nginx -t
# 設定の再読み込み
sudo systemctl reload nginx
# SSL証明書の確認
openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -text | grep -A 2 "Validity"
Step 5: 全面的な動作確認
-
複数ブラウザでのアクセス確認
- Chrome, Firefox, Safari でのアクセステスト
- スマートフォンからのアクセステスト
-
重要機能の動作確認
- お問い合わせフォームの送信テスト
- ECサイトの場合は決済フローの確認
- 管理画面へのログインテスト
-
SEO関連の確認
- リダイレクト設定の確認
- サイトマップの再送信
前述の製造業クライアントの事例では、この手順で約2時間での復旧を実現できました。「迅速な対応でビジネスへの影響を最小限に抑えられた」と評価いただき、現在も継続的な保守契約をいただいています。
よくある失敗パターンと対処法
失敗パターン1: 「とりあえず証明書を入れれば大丈夫」
よくある間違い
# 間違った設定例
ssl_certificate /path/to/certificate.crt; # 中間証明書が含まれていない
ssl_certificate_key /path/to/private.key;
正しい対処法 証明書チェーンを正しく設定する必要があります。
# 証明書チェーンの確認
openssl s_client -connect example.com:443 -showcerts
# 中間証明書も含めたファイルの作成
cat certificate.crt intermediate.crt > fullchain.crt
失敗パターン2: DNS変更のタイミングミス
移転作業でよくある失敗が、DNS変更のタイミングです。新サーバーでSSL証明書を設定する前にDNSを変更してしまい、証明書の取得ができなくなるケース。
対処法:段階的な移行
- 新サーバーで証明書を取得・設定
- 動作確認完了後にDNS変更
- 旧サーバーの証明書は念のため数日間維持
失敗パターン3: ワイルドカード証明書の設定ミス
*.example.com のワイルドカード証明書を使用している場合の設定ミス。
# 間違い:ワイルドカード証明書なのにサブドメインで設定
server_name sub.example.com; # これだけでは不十分
# 正しい設定
server_name *.example.com example.com; # 両方指定が必要
失敗パターン4: Mixed Content(混在コンテンツ)の見落とし
SSL証明書は正常でも、サイト内でHTTPリソースを読み込んでいると警告が出る場合があります。
// 問題のあるコード
<script src="http://example.com/script.js"></script>
<img src="http://cdn.example.com/image.jpg">
// 修正後
<script src="https://example.com/script.js"></script>
<img src="https://cdn.example.com/image.jpg">
サーバー移転時のSSL証明書チェックリスト
事前準備が何より重要です。私たちが20年の経験で培った、移転時のチェックリストをお伝えします。
移転前の準備段階
証明書の現状把握
- 現在使用中のSSL証明書の種類と発行元
- 有効期限の確認(移転予定日との照合)
- 証明書ファイルのバックアップ取得
- サブドメインやワイルドカード証明書の対象範囲確認
新サーバー環境の確認
- サーバーソフトウェアの種類とバージョン
- SSL証明書の設定方法の確認
- Let's Encrypt対応の可否
- 必要なポートの開放状況
移転実行時のチェックポイント
DNS変更前の準備
# hosts ファイルを編集して新サーバーでテスト
echo "新サーバーIP example.com" >> /etc/hosts
# SSL証明書の事前取得と設定
# この段階で証明書設定を完了させる
移転当日の手順
- 新サーバーでのSSL証明書設定完了確認
- HTTP/HTTPS両方での動作確認
- DNS変更の実行
- 証明書の有効性確認
- 全機能の動作テスト
実際に、この チェックリストを導入してから、弊社での SSL関連トラブルは90%以上減少しました。事前準備により、移転作業そのものも従来比で約60%の時間短縮を実現しています。
まとめ:SSL証明書トラブルを防ぐための次のステップ
SSL証明書切れによるサイト停止は、適切な準備と手順を踏めば確実に防げるトラブルです。しかし、一度発生してしまうと、ビジネスへの影響は深刻です。
特に重要なのは以下の3点です:
- 事前の証明書有効期限チェック:移転スケジュールとの照合を必ず行う
- 段階的な移行手順:DNS変更前に新サーバーでの証明書設定を完了させる
- 緊急時の対応フロー整備:トラブル発生時の連絡体制と復旧手順の明文化
私たちFivenine Designでは、これまでの経験をもとに、サーバー移転時のSSL証明書設定を含む包括的な移行サービスを提供しています。「移転は成功したけれど、SSL証明書で躓いてしまった」「事前チェックをお願いしたい」といったご相談も承っています。
今すぐ実行すべきアクションプラン:
現在運用中のサイトがある方は、まず以下のチェックから始めてください:
SSL証明書は「設定すれば終わり」ではなく、継続的な管理が必要な重要なインフラ要素です。適切な管理体制を整えることで、安全で信頼性の高いWebサイト運営を実現できます。
技術的な詳細や、より高度な設定についてご質問がある場合は、お気軽にご相談ください。あなたのWebサイトが安全かつ安定して運営できるよう、全力でサポートいたします。