Google Chromeなど各ブラウザが、PC・スマホとサーバー間の通信暗号化(SSL)に対応していないサイトに対して警告を出すようになり、常時SSL対応が当たり前になってきました。簡単に設定ができ、無料で使えるSSLサーバー証明書「Let’s Encrypt」を使っているケースも多いと思います。1度設定してしまえば更新も自動でされますし、とても便利です。
SSLサイトを移管するとサイトが見れなくなるエラーが発生
ただし、Let’s Encryptを使うときに1つ問題点があります。サーバー移管時に一時的にSSLが外れ、ブラウザに「このサイトではプライバシーが保護されません」というエラーが表示されてしまい、サイトを見ることができなくなってしまうのです。
Let’s Encryptを使っているサイトのサーバー移管の手順は、ざっくり書くと以下の通りです。
1. 新しいサーバーにサイトを構築する
2. DNSを切り替える
3. 新サーバーにLet’s Encryptを設定する
Let’s Encryptはいわゆる「ドメイン認証型」のSSLサーバー証明書なので、証明書自体を移管することができず、DNSが指定されているwebサーバーにだけインストールすることが可能です。
つまり、上記手順の2と3の間=DNSが浸透し、新サーバー側のコンテンツがブラウザに表示され、SSLサーバー証明書の設定ができるまでの時間は、httpsでアクセスしたのにサーバーには証明書が入っていない状態になるため、ブラウザに「このサイトではプライバシーが保護されません」というエラーが表示され、サイトが見られなくなってしまいます。
エラーを回避するための対応策
まだ弊社でも明確な対策が立てられているわけではないのですが、このようなエラーが起こらないようにするためには、以下の対応策が考えられます。
1. サイトがエラー表示になるのを許容する
レアケースだとは思いますが、「多少の時間エラーが表示されても問題ない、気にしない」と判断できる場合は、特に対策をとらず、通常通りの移管手順で作業を進めても問題ないと思います。
この場合は、事前にサイト上で「○月○日○時からリニューアル作業のため、数時間サイトにアクセスできない可能性があります」と告知しておくのも手です。
また、もしこの選択肢をとる場合は、早朝や深夜など、アクセスが少ない時間に行うものアリかもしれません。担当制作会社と相談してみてください。
※ちなみにこの時、「メンテナンス中です」という画面を仕込んでおいても、意味はありません。なぜなら、httpsでアクセスした時点で(具体的なサイトコンテンツを表示させる処理が走る前に)エラーが表示され、メンテナンス画面が表示されることはないからです。
(ここでPCやスマホとサーバーがどういうやりとりをしているかについて知りたい方は、HTTP通信について調べてみてください)
2. ドメイン認証型ではない証明書を新サーバーに設定する
ドメイン認証型ではない証明書(OV認証=企業認証、EV認証)を取得して、移管先のサーバーへ設定します。このタイプの証明書でしたら、再度別のサーバーへサイトを移管する際にも、証明書も一緒に移管できるはずです。ただし証明書の種類やサーバー会社によって制限がある場合があるので、事前に調査が必要です。
ただし、ドメイン認証とは違って、企業の存在を証明する書類の提出が必要だったり、第三者の審査があったりして、取得のハードルが高く、取得までの時間もかかるため、作業スケジュールは余裕を証明書の費用も年間数万円以上かかります。
上記2つの方法以外には、移管前のサイトをhttpsから一旦httpに戻して移管作業をする、という選択肢もありますが、これは工数が無駄にかかりますし、作業ミスのリスクも大きくなってしまうため、現実的ではないと思います。