すでにサーバー会社の提供する「Let’s Encrypt」などの「無料SSL」を利用しているサイトを、サーバー移転したいと思った時に思わぬ落とし穴があります。
移転先でも無料SSLを利用しようと思った時、一時的にhttpアクセスになってしまうタイミングが発生します。DNS切り替え+SSL発行までの時間はhttpへのアクセスとなってしまい、ページが非表示になってしまうタイミングです。
そうなると、Googleの検索結果に「https」でインデックスされているサイトの場合は、全ページが認証エラーのページになってしまう事になります。
今回は、サイト不通期間を出さない無料SSLの移転方法と注意点を確認しておきたいと思います!やっぱり、サーバー選びはとっても大事ですね。
目次
無料SSLのサーバー移転の注意点
まずは、無料SSLを利用しているサイトを移転する時にどんな問題があって、どんな注意点があるのかを理解しておきたいと思います。
ほとんどがドメイン認証型の無料SSL
ほとんどのレンタルサーバーが、無料SSLを発行する時に、ドメインで認証して証明書を発行する「ドメイン認証型」になっています。この仕組みのおかげで難しい入力をしなくてもボタン一つですぐにhttpsでアクセスできるわけです。
つまり、ネームサーバーが正しくないとSSLの認証ができないという事になりますので、旧サーバーから新サーバーに移転してからでないとSSLの発行が受けられません。
これは、新サーバーに移転してすぐのタイミングではhttpでしかアクセスできないタイミングが発生してしまうという事です。
DNS切り替えまでhttpsではアクセスエラーになる
DNS(ドメイン・ネーム・システム)の切り替えを行う事で最終的なサーバー移転が完了するはずですが、その段階では新サーバーにSSL証明書が存在しませんので、httpsでアクセスすると、chromeの場合には「この接続ではプライバシーが保護されません」というプライバシーエラーになってしまいます。
また、いわゆるDNS浸透には24時間~数日と言われているので、貴重なサイトの場合には生きた心地がしないかもしれません。
ページが表示されない期間が数日程度ならSEO的な意味合いでは問題もないという見解がありますが、今回のケースでは一時的にhttpが表示されるわけなので、SEOに影響する可能性もゼロではありません。
外部からの被リンクがhttpに向いている場合には、Googlebotもhttpを認識してしまいますからね。
一時的なリダイレクトは不可能
だったらhttpsのhtaccessを利用して302リダイレクト(一時的な転送)でhttpにアクセスを集めようと考えると思うのですが、それも不可能です。
なぜなら、新サーバーのhtaccessが読み込まれるのはhttpの場合のみです。httpsでのアクセスはそもそもアクセス不能の状態という事です。
つまり、無料SSL利用時のサーバー移転では、大きなリスクがついて回るという事になります。
SSLのままサーバー移転するには「SSL持ち込み」に注目!
SSLサイトを非表示期間なく移転する為に必ず必要なのは、そのサーバー会社が「SSLの持ち込みに対応しているか?」という部分です。
移転先がSSL持ち込みに対応していない場合
移行先にドメインを登録して、ネームサーバーを書き換えてからじゃないと無料SSL設定ができません。
これは無料SSLの発行にドメイン認証型を採用しているサーバーがほとんどなので仕方ないです。
タイミング | URL状態 |
---|---|
旧サーバーの状態 | https://ドメイン |
新サーバーにネームサーバーを変更(数時間~72時間) | http://ドメイン |
ネームサーバーが浸透してからSSL発行(数分~数日) | https://ドメイン |
移行期間中にhttpsへのアクセスにエラーが出る期間は、運が悪いと最大5日なんていうケースも考えられます。
移転先がSSL持ち込みに対応している場合
持ち込みに対応しているのであれば、無料SSLをネームサーバー変更前に発行してしまう事で、SSLのままサイトを移転できるという事です。
通常この持ち込みは、有料の独自SSLをインストールする為の機能ですので、「他社で取得したSSL証明書が利用できる」サーバーならば、今回の無料SSLでも十分に利用は可能というわけです。
「Let’s Encrypt」はドメイン認証型なので、サーバーのIPに左右されずに発行する事が可能です。旧サーバーの状態のまま、無料SSLの証明書を自力で発行してしまうというわけです。
SSL状態のままサーバー移転する手順
- 「Let’s Encrypt」の証明書を発行する
- 新サーバーにドメインを登録する
- 新サーバーに「Let’s Encrypt」の証明書をインストールする
- 新サーバーにHPデータを置く
- hostsファイルを編集してhttpsの確認
- DNS切り替え
少し手間が掛かるのは「Let’s Encrypt」の証明書を発行する部分と、新サーバーへの証明書インストールのみで、あとは通常のサーバー移転と作業自体は変わりません。
ここまでの流れでサーバー移転に不安がある場合には、専門家にお願いする方が確実です。万が一設定を間違えると非表示期間が何日も続いてしまったりするデリケートな作業なので、無料相談をしてくれる所を選びましょう!
「Let’s Encrypt」の証明書を発行する
今回はなんとブラウザ上だけで証明書を発行できる「SSLなう! – ブラウザで手軽に Let's Encrypt!」を利用させて頂きます。
Let’s Enctyptへ登録
メールアドレスの入力、利用規約への同意を確認して登録ボタンを押します。
「Let’s Encryptへの登録に成功しました!」と表示されたら次へ。
チャレンジトークンの取得
「証明書発行を希望するドメイン名」に対象のドメインを入力します。私の場合はwwwが付いたサブドメインも合わせて取得する為に「追加」を押して2つ入力しました。トークンを取得ボタンを押します。
「チャレンジトークンの取得に成功しました!」と表示されたら次へ。
ドメイン名の所有確認
ここに表示されたURLに指定の文字列だけ記入したファイルをFTPを使ってアップロードします。
ドメイン直下に/.well-known/acme-challenge/という階層を作って、指定された文字列のファイルを作ります。(拡張子のないテキスト形式のファイル)
そのファイルの中身には同じく指定された一行の文字列を記述しておきます。
実際にそのURLにアクセスしてきちんと表示される事を確認したら、確認ボタンを押します。
「所有権の確認に成功しました!」と表示されたら次へ。
証明書発行申請(秘密鍵)
「RSA」タブの「生成(2048bits)」というボタンを押して「秘密鍵」を生成します。
アルファベットの文字列がズラーッと生成されたら証明書発行申請ボタンを押します。
「証明書の取得に成功しました!」と表示されたら次へ。
発行された証明書
これでSSL証明書が発行されました!
こんなに簡単に利用できる「SSLなう」は本当に凄いです。
新サーバーに「Let’s Encrypt」の証明書をインストールする
まずは、SSLの持ち込みが可能な新サーバー(今回はmixhost)に移転したいドメインを登録しておきます。
「管理画面 > セキュリティ > SSL/TLS」を選択します。
対象のドメインをプルダウンリストから選択します。
「SSLなう」で発行した証明書をコピペしていきます。それぞれの対応表は以下です。
mixhost入力欄 | SSLなう発行 |
---|---|
証明書: (CRT) | cert.pem (サーバ証明書) |
秘密キー (KEY) | サーバで使用する SSL 秘密鍵 |
証明機関バンドル: (CABUNDLE) | chain.pem (中間証明書) |
利用しません | fullchain.pem (サーバ証明書 + 中間証明書) |
全て入力したら、「証明書のインストール」を押します。
SSLのインストールが成功すると「SSL証明書が正常に更新されました」と表示されてインストール終了です。
hostsファイルを編集して表示確認してみる
hostsファイルを変更すると、サーバー移転前に、自分のパソコンだけ新サーバーを参照する事ができます。
「https」で対象のドメインにアクセスしてみて、きちんと表示されれば成功です。お疲れ様でした!
これでHPデータの移行やサイトの構築を行って、問題がなければDNSの切り替えを行えば「非表示期間ゼロのSSLサイト移行」が完了です。
mixhostに問い合わせてみた所、期限が切れる前にmixhost独自の無料SSLで上書きしてくれるとのこと!神ですか(´・ω・`)?
無料SSLが利用できるサーバーのSSL仕様を確認する
今回は利用者の多い「Xserver」「mixhost」「さくらレンタルサーバー」の無料SSLについての仕様を確認してみたいと思います。他社で取得したSSLの移転についての公式ヘルプを調べてみました。
XserverのSSL移転状況
2019年8月6日についにXserverが他社サーバーからの移転時にSSL証明書を事前発行できるようになりました!
SSL化サイトをエックスサーバーに移転する際、事前にSSL設定を行うことで、移転時のサイトダウンを防ぐことができます。
SSL化サイト移転の際は、サーバー移転前に以下の案内に沿って事前にご準備いただくことをおすすめします。
「無料独自SSL」を事前に設定していただくには、「外部サーバーでのWeb認証」を行う方法と、「外部ネームサーバーでのDNS設定」を行う方法の2通りがあります。
Q.他社で購入したSSLサーバー証明書の持ち込みには対応していますか?
A.いいえ。SSL証明書の持ち込みには対応しておりません。
当サービスでご契約のSSL証明書のみご利用が可能です。
Q.エックスサーバーで購入したSSLサーバー証明書を持ち出せますか?
A.いいえ。SSL証明書の持ち出しには対応しておりません。
ただし、Xserverは、SSL証明書の持ち込みと持ち出しには対応していません。
関連会社のスターサーバーも、持ち込みと持ち出しには対応していませんでした。
mixhostのSSL持ち込み
Q.持ち込みのSSLからmixhostのSSLに変更するにはどうすればいいですか?
A.cPanelでご登録済みである他社様のSSLの残り期間が3日になると、自動的に弊社発行の証明書に置き換えられます。
(一部省略)
原則といたしまして、他社様のSSLのご利用についてのサポートは、対象外となりますのでご了承くださいませ。
MixHostではSSLの持ち込みに対応しています。また、mixhostのサーバー仕様は普及率の高いcPanelを採用しているので、マニュアルが世界中で出揃っているのも強みですね。
さくらのSSL持ち込み
【独自SSL】他社サーバよりSSL証明書を移行する手順
以前のサーバで運用されていた秘密鍵をサーバへアップロードします。
以前のサーバで利用していたSSLサーバ証明書をサーバへインストールします。
ウェブブラウザでアクセスし、正しく表示されるか確認します。
さくらのレンタルサーバでは持ち込みに対応しています。利用者もマンモス級のサーバーですし、公式ヘルプもしっかりしているので、迷う事なく設定ができるのは強みですね。
httpsのまま移転する方法まとめ
今回はMixHostの無料お試し期間だけでここまでの作業を行いました。この値段でスペックとスピードに定評があって、クラウド型のサーバーとなれば、もはや無敵にも感じますよね。
何より今回のような、無料SSLのままサーバー移転をするケースでも柔軟に対応できるサーバーは、調べてみても多くありません。もちろん有料の独自SSLならば選択肢は少しだけ増えますが、基本的に持ち込みが不可のサーバーだとそれもできません。
mixhostは複数プランの契約もできるのですが、私は本契約しているプランがすでに2つあって絶賛爆速稼働中です。今回のお試し期間のプランもSSL移行が完了したので3つ目…いやさすがにそれは…という葛藤を行っています。普通なら一つのプランで何サイトも運営できるので、複数プランなんて必要ないのですが、サーバーのセッティングから変更したりして遊んでいると私のような沼にハマります。
こうした作業に自信のない方や、忙しくて時間のない方は、迷わずプロに無料相談が良いですね!
移転する時は、クラウド型サーバーを選んでおけばいつでも好きなタイミングで上位プランや下位プランに管理画面から移行できますよ!
今日も知識欲は止まらない。