常時SSLでhttps://でGoogleにもインデックスされているサイトを、別のサーバーに移すことになりました。
AWSや専用サーバーやVPSを利用しているような企業のサイトではなく、共用サーバーを利用するような比較的小規模なサイトで、Let’s Encrypt(無料SSL証明書)を利用している共用サーバーのサイトを、Xserverの共用サーバーに移した経験談ですが、共用サーバーでなくても使う手段かと思います。
そこで事前に引っ越し先のサーバーでSSL設定を済ませたいところですが、まだネームサーバーもしくはAレコードは引っ越し元のままなので、事前に引っ越し先のサーバーに証明書をインストールできません。
hostsを書き換えて確認したのですが、https://でアクセスしてしまうため、下記のようなセキュリティアラートが出てしまいます。
では、.htaccessでhttpsでアクセスがあったら「http」にいったんリダイレクトさせて、ネームサーバーを切り替えたらSSLを入れようと下記のような記述を引っ越し先のXserverでしてみたのですが・・・
RewriteEngine On RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
効きません。
ひょっとして無料のお試し期間中だから?とも思って本契約をしてみたのですが、やはり効きませんでした。
これはあとでわかりましたが、SSLの設定ができていないと効かないようです。
まあ、こうやって私の試行錯誤を延々とお聞かせして、長々引っ張るのはご迷惑でしょうから、そろそろXserverで解決した方法(結論)を書きます。
Xserver以外は確認していませんのであしからず。
まず、Xserverのサーバーパネルから「SSL設定」の画面に進み、「独自SSL設定追加」のタブ画面を開くと、
という説明がありました。
その記述の中で
■「XXXXXXX.com」を他社サーバーで運用中の場合(サーバーを移転する場合)
以下の「外部サーバーでのWeb認証」または「外部ネームサーバーでのDNS認証」を利用し、
独自SSL設定を追加してください。
とあり、以下の3つの方法がラジオボタンで選択できるようでした。
認証方式
〇ネームサーバーを変更して認証
〇外部サーバーでのWeb認証
〇外部ネームサーバーでのDNS認証
最初の「ネームサーバーを変更して認証」は、認証を受ける前にアクセスされたユーザーにアラートが出てしまうので没。
2つ目、もしくは3つ目の方法で認証を受ければ、引っ越し前の新しいサーバーにインストールできるということですね。
ただ2つ目の「外部サーバーでのWeb認証」は引っ越し元のサーバーに認証用ファイルを置くことができればいいのですが、私の場合、引っ越し元のサーバーは別の会社が管理をしており、アップロードする権限がありませんでした。
しかし、ドメインの管理は権限をいただいていたので、結局上記のうち、「外部ネームサーバーでのDNS認証」を選択しました。
外部ネームサーバーでのDNS認証を選択すると。
書かれているDNSのTXT(表示されたTXTのホスト名、VALUE)をDNSのレコード設定に書き込んで認証を受けて解決しました。
私の場合はドメインはお名前ドットコムにありましたので、お名前ドットコムでやったことを書きますと・・・。
お名前.comのドメインNaviにログインします。
(1)ドメイン設定の画面
この画面のメニューの「ネームサーバーの設定」にある「DNS設定/転送設定」をクリックします。
(2)DNS設定/転送設定-ドメイン一覧
という画面に遷移します。
そこでDNS追加オプションが設定済みでなければ、該当するドメイン名の右にある「お申込み」をクリックして100円決済をします。
DNS追加オプションが設定済みであれば、該当するドメインを選択して「次へ」をクリックします。
(3)DNS設定の画面
DNS設定の画面に遷移しますので「DNSレコード設定を利用する」を選択します。
(4)DNSレコード設定
あとはその画面で、XserverのSSL設定の独自SSL設定追加で表示(取得)したされたTXTのホスト名、VALUEを追加します。
お名前.comでDNSレコード設定したあと、数10分待ってXserverでSSLの設定状況確認ができれば成功です。
引っ越しがまだでAレコードも変更していなくとも、新しいサーバーにはSSLが設定されます。
最近はDNS認証で所有を証明し、承認がもらえるSSLも増えていたので、時々これをやるのですが、これが一番楽な気がします。
まあDNSのTXT追加が面倒なら、アクセスの少ない深夜とかにネームサーバー(私の場合はAレコードのIPアドレス)を書き換え、XserverにてLet’s Encrypt(無料SSL証明書)を設定し、セキュリティアラートが一定時間出てしまうのをガマンするというのもアリかと思います。
ほか、独自SSLなら一部の共用サーバー会社によってはSSL証明書の持ち出し、持ち込みができるサーバー会社もあるようですが、残念ながらXserverは持ち込み不可でした。
https://www.xserver.ne.jp/support/faq/faq_service_ssl.php
Q:他社で購入したSSLサーバー証明書の持ち込みには対応していますか?
A:いいえ。SSL証明書の持ち込みには対応しておりません。当サービスでご契約のSSL証明書のみご利用が可能です。
先にXserverの持ち込みを調べてNGだったので、お名前ドットコムの共用サーバーでSSL証明書の持ち出しができるかは調べていませんが、たぶんダメだと推察しています。
※推察なので間違っていればご指摘ください。
現場からの報告は以上です。