昨年当サイトを常時SSL化したのですが、その後エックスサーバーで無料の独自SSLである「Let’s Encrypt」が導入されました。
常時SSL化した当時は、まだ「Let’s Encrypt」が利用できなかったので、有料のオプション独自SSLである「CoreSSL」を契約したのですが、先日更新の時期を迎えたため、この機会に「Let’s Encrypt」に切り替えしてみました。
入れ替えの手順はそう難しくはなかったのですが、それぞれのSSL証明書を設定する画面が分かれていたり、ちょっと迷った点などがあったので、そのあたりも含めて、今回はエックスサーバーで有料の「CoreSSL」から無料の「Let’s Encrypt」に切り替える手順を詳しく説明したいと思います。
Let’s Encrypt へ変更するメリット・デメリット
まず、それまで使用していた有料のSSL証明書「CoreSSL」から無料の「Let’s Encrypt」に変更するにあたり、そのメリットやデメリットを確認しました。
前提として、「CoreSSL」と「Let’s Encrypt」は、ともに「ドメイン認証型」、つまりドメインの所有者であることが確認できれば取得できるレベルのSSL証明書、ということで、その信頼性に変わりはありません。当サイトのような一般のサイトであれば、このレベルで全く問題ありません。
・レンタルサーバーとSSL(2)-SSL証明書の種類と認証局
それ以外には、どのような違いがあるのでしょうか。
メリット
- SSL証明書の料金が無料になる
- 証明書の更新が不要
デメリット
- 旧式のフィーチャーフォン(ガラケー)から閲覧不可
まず、CoreSSL は有料ですが、Let’s Encrypt は無料のため、その分の費用が浮きます。とは言え、CoreSSL も年額で1,000円程度なので、大したことはありません。
それよりも大きいのは、SSL証明書の更新が不要という点。有料の SSL証明書は、年単位で更新を行う必要があるため、万一更新を忘れてしまった場合は、HTTPS でのアクセスができなくなってしまいます。
一方、Let’s Encrypt は基本的に90日ごとの更新が必要なのですが、この更新処理をエックスサーバー側が行ってくれていますので、ユーザーは一切更新手続きを行う必要がないわけです。
デメリットに関しては、ガラケーからアクセスできないという点位ですので、現在ではほとんどの人は問題にならないでしょう。
以上から、ドメイン認証レベルであれば、Let’s Encrypt に変更するをするメリットのほうが大きいと言えますね。
SSL証明書入れ替えの流れ
では、実際にエックスサーバーで SSL証明書を入れ替えする際の流れを確認してみましょう。
まず、入れ替えするのに必要な作業は、以下のようなものです。
インフォパネルでの作業
- オプション独自SSL証明書(CoreSSL)の解約
- オプション独自SSL証明書のアンインストール
サーバーパネルでの作業
- 無料独自SSL証明書(Let’s Encrypt)のインストール
以上のように、有料の独自SSL証明書と無料の独自SSL証明書の設定画面が、契約関連の「インフォパネル」とサーバー設定関連の「サーバーパネル」に分かれているため、それぞれの管理画面にログインして、順次作業を進める必要があります。
また、有料の独自SSL証明書についても、「解約」と「アンインストール」という二つの作業を行う必要があります。作業は数クリックで終わるのですが、ちょっと迷う人もいるかもしれませんので、次の項目でその手順を詳しく説明します。
なお、有料SSL証明書をアンインストールした時点で、HTTPS でのアクセスができなくなる、という前提になっていることと、Let’s Encrypt の設定が反映するのにも少し時間がかかります。そのため、トータルで 1時間程度、HTTPSでのリンクからのアクセスが行えなくなってしまう可能性がありますので、注意が必要です。
ただ、実際に作業を行ってみたところ、入れ替えのギャップは全くなく、即時入れ替えが行われました。
もちろん、すべての状況において、タイムラグなしに SSL証明書が移行できるとは限りませんので、ある程度 HTTPS でのアクセス不能期間が発生することは覚悟しておいたほうがいいかもしれません。そのため、できるだけサイトへのアクセスが少ない早朝などに作業を行うことをオススメします。
SSL証明書入れ替え手順
では、早速SSL証明書の入れ替え手順を説明していきます。
まずは、CoreSSL の解約とアンインストールからです。解約は契約自体の解除、アンインストールはサーバーからSSL証明書を削除する手順です。順序として、先に契約の解除を行う必要がありますので、先にアンインストールをすることはできません。
オプション独自SSL証明書(CoreSSL)の解約
以下の URL から、エックスサーバーのインフォパネルへログインします。
https://www.xserver.ne.jp/login_info.php
インフォパネルにログインしたら、左のメニューを確認します。
メニューの下のほうにある「各種お申し込み」の「解約」をクリックします。
「退会・解約申請」画面が表示されたら、「独自SSL」の右の「解約」をクリックします。
解約する SSL証明書の URL を確認し、「解約申請」をクリックします。
確認画面が表示されたら、「SSLの解約申請(確定)」をクリックします。
完了画面が表示されたら、解約申請は終了です。
念のため、左のメニューの「契約情報」を開き、「独自SSL 契約情報」タブを確認すると「契約」のステータスが「解約」になっていることが確認できます。
以上で、SSL証明書の解約手続きは終わりました。
続けて、サーバーからSSL証明書をアンインストールします。
オプション独自SSL証明書(CoreSSL)のアンインストール
インフォパネルにログインしたまま、インフォパネルのトップ画面に移動します。
トップ画面の真ん中にある「ご契約一覧」を、下にスクロールしていくと「SSL証明書」の項目がありますので、その中でアンインストールする SSL証明書を確認し、右にある「アンインストール」をクリックします。
内容を確認して、「SSLアンインストールを行う(確定)」をクリックします。
アンインストールの完了画面が表示されたら、終了です。
念のため、先ほどの「ご契約一覧」を確認すると、設定されているSSL証明書も消えています。
この段階で建前上はHTTPSでのアクセスができなくなる可能性がありますが、すぐには設定が消えませんので、引き続き Let’s Encrypt の設定を行っていきます。
以上でインフォパネルでの作業は終わったのでログアウトし、以降はサーバーパネルにて作業を行います。
無料独自SSL証明書(Let’s Encrypt)のインストール
続けて Let’s Encrypt の設定を行っていきます。
エックスサーバーの画面上では、すべて「無料独自SSL」とのみ記載されており、Let’s Encrypt の文字はありませんが、(現時点で)サーバーパネルで設定が行えるのは Let’s Encrypt のみなので、気にしないで作業を進めてください。
以下の URL から、エックスサーバーの「サーバーパネル」にログインします。
https://www.xserver.ne.jp/login_server.php
「ドメイン」の項目にある「SSL設定」をクリックします。
設定するドメイン名の右にある「選択する」をクリックします。
「独自SSL設定の追加」タブをクリックします。
独自SSL の設定画面が表示されたら、基本的には「www.(独自ドメイン)」の形の設定のままでOKなので、「独自SSL設定を追加する(確定)」をクリックします。(企業でなければ、「CSR情報」の入力も不要です)
完了画面が表示されたら、Let’s Encrypt の設定も完了です。
念のため、独自SSL の設定画面を見てみると「設定済」となっています。
以上で、設定はすべて終了です。
なお、上でも触れたように、SSL証明書の切り替えにはタイムラグがあるということになっています。
しかし、実際は CoreSSL を解約後も HTTPS でのアクセスが可能で、しかもブラウザで何度リロードしても、証明書自体もCoreSSL のままでした。
その後もマメにリロードしてチェックしていたのですが、気づくほどのタイムラグはなく、気が付いたら Let’s Encrypt の証明書に切り替わっていました。(時間的にCoreSSLの解約手続きを始めてから、55分くらい)
SSL証明書入れ替え手順
以上のように、結果的には全くギャップなく、無料の Let’s Encrypt へ移行できたのですが、当初は1時間~30分程度のギャップを想定して、その間のアクセスを捌くことも裏作業で行っていました。
具体的には、Let’s Encrypt が有効になるまでの間、すべてのアクセスを HTTP に流すようにするということですね。実際には全く無駄な作業となってしまいましたが、参考までに想定していた作業の流れを、以下にメモしておきます。
独自SSL 証明書入れ替えの流れ
- 念のため、サイトデータをバックアップ
- 「.htaccess」に HTTPS のアクセスを HTTP にリダイレクトするよう設定
- プラグイン「Better Search Replace」や phpMyAdmin で、記事内の内部リンクを「HTTPS → HTTP」に変更
- CoreSSL を解約+アンインストール
- Let’s Encrypt を有効
- 1時間ほど経過したら、(一時的に「.htaccess」の設定を解除して)Let’s Encrypt が有効になっているか確認
- 有効になっていたら、「.htaccess」で HTTPS にリダイレクトするように戻す
- 記事内の内部リンクを「HTTP → HTTPS」に戻す
エックスサーバーのSSL証明書を入れ替える手順まとめ
以上、エックスサーバーで有料のSSL証明書から、無料のSSL証明書に入れ替える手順について紹介しました。
想定していたようなSSL証明書入れ替え時のギャップなどはありませんでしたし、多少迷った点はあったものの、設定自体も簡単に行えたので、かなりスムーズに作業は行えました。
これからエックスサーバーで常時SSLを行うライトユーザーの多くは、最初から Let’s Encrypt を使うと思いますが、中には同じように有料の独自SSL から切り替える人もいるかもしれませんので、参考になれば幸いです。