2018.05.01 システム
さくらのレンタルサーバでSSLが設定できない
こんにちは、システムエンジニアの大貫です。
今回は、さくらインターネットのレンタルサーバへサーバリプレイスする際に
単純に作業を行うとSSLが有効化出来ないという件について、記載します。
(解決策も記載してあります)
前提条件は以下の通りです。
<前提条件>
・現行サイトが別のサーバで動作している。
・さくらのレンタルサーバに、リプレイスしたい。
・SSLページを設定したい。
通常、新しいサーバにSSL証明書を設置する場合は、以下の公式手順の通り、
「CSR」を作成し、「SSL証明書を購入」し、「SSL証明書を設置」して、「SSL設定」という流れです。
【参考】さくらインターネット【独自SSL】導入の流れ・設定手順
しかし、さくらのレンタルサーバの場合は、注意が必要で、上記の前提条件の際に「SSL設定」をしようとして、「SNI SSLを利用する」にチェックを付けて、
「送信」ボタンをクリックすると・・・
「このドメインでは利用できません」とエラーメッセージが表示されて、
SSLを有効化出来ません。
この「このドメインでは利用できません」というエラーメッセージ、不親切で、SSL証明書を設置してあるのに、なぜSSLを有効化できないのか、なぜこのドメインでは利用できないのか、最初は分かりませんでした。
「このドメインでは利用できません」という文字で、googleで検索しても、さくらのサポートサイトで確認しても
見つからなかったので、直接さくらインターネットに問い合わせしてみました。
すると・・・以下のような回答がありました。
<さくらインターネットの回答>
対象のドメインについて、DNSのAレコードが、さくらのレンタルサーバを向いていないと「SNI SSL」を有効にすることが出来ない仕様となっております。
<大貫>
いや、それでは、さくらのレンタルサーバへサーバ移設する場合、一旦SSLが無効な状態でDNSのAレコードを切り替えて、
その後、DNSが浸透されてから、コントロールパネル上で「SNI SSL」を有効にするしか無いということですか?
<さくらインターネットの回答>
その通りです。
<大貫>
でも、それだと、DNSを切り替えて「SNI SSL」を有効にするまでの間に、問い合わせフォームにアクセスされたり、常時SSL化されているサイトだった場合とかは
「安全な接続ではありません」というページが表示されてしまうので、回避方法を検討してもらいたい。
もしくは「SNI SSL」ではなくて「独自SSL」であればDNSを変更しなくても設定できますか?
と伝えたところ・・・
<さくらインターネットの回答>
現状の仕様ですので、「安全な接続ではありません」というページが表示されるような現象は発生するかと思います。
回避方法はありません。
「独自SSL」も同様の仕様でございます。
とのことでした。
このままでは、DNSを切り替えてからしか、SSLを有効化出来ないので、サイトを閲覧できなくなってしまう時間が出来てしまうと、何か方法が無いか検討しました。
そこで考えたのが以下の方法です。
<サイト閲覧不可にせずにSSLを有効化する方法>
1.通常通り、SSL証明書の設置までを実施する。
2.さくらのレンタルサーバ上に、「.htaccess」を設置し、
「wwwなし」でアクセスされたら、「www付き」のURLへリダイレクトする設定を行う。
3.現状稼働しているDNSサーバにて、「wwwなし」のAレコードを、
さくらのレンタルサーバへ向ける。
4.DNS浸透後、さくらのレンタルサーバにて、SSLを有効化
この方法であれば、DNSレコードは、さくらのレンタルサーバを向くので、SSLを有効化出来ますし、通常のサイト閲覧ユーザが、「wwwなし」でアクセスしたとしても、一旦はさくらのレンタルサーバへアクセスされますが、「www付き」の現行サイトへリダイレクトされるので、何の違和感もなくサイトを閲覧できるという状態になります。
<動作の例>
※「Aサーバ」で稼働している「insource-mkd.co.jp」を、
さくらのレンタルサーバへ移設する場合。
1.閲覧ユーザが「insource-mkd.co.jp」へアクセス
(さくらのレンタルサーバへアクセスされる)
2.「insource-mkd.co.jp」にリダイレクトされる
(Aサーバへアクセスされる)
これで、現行サイトにも、リプレイス後のサイトにも影響を与えず、SSLの有効化が出来ました。
参考になれば、この手順を使ってみてください。
サーバリプレイスに関わらず、お客様の不利益にならないよう最善の方法を検討させていただきます。
サイトの改善に向けたご相談など、サイト制作に関わることについては、是非マリンロードへご相談ください。