Zone APEX (Naked Domain)の解消

このブログサイトの URL を https://bigriver.jp/ から https://www.bigriver.jp/ に変更する話です。

このブログサイトは https://bigriver.jp/ と Zone APEX (Naked Domain) でインターネットに公開しています。 最近、Alibaba Cloud CDN や Alibaba Cloud Global Traffic Manager を利用したい状況が出てきた際に APEX では CNAME が利用できず(APEX だから CNAME が使えないわけではなく NS レコードとの共存の話ですが)、結果として CDN や GTM を利用できないということが続きました。 bigriver.jp ドメインのDNSサーバを構成している Alibaba Cloud DNS が Alias レコードを提供出来れば APEX と CNAME の制限は回避出来たのですが現状 Alias は利用できません。

ということで このブログサイトの URL を https://bigriver.jp/ から https://www.bigriver.jp/ に変更していきます。 https://bigriver.jp/ でのアクセスを全く出来なくするというよりは https://www.bigriver.jp/ も追加し、APEX でアクセスが有った場合は https://www.bigriver.jp/ にリダイレクトする構成を考えています。 

変更ポイント

今回の Zone APEX の解消に必要な作業は以下になると考えています。 やりながら過不足あれば追加で説明していきます。

  1. www.bigriver.jp の A レコードの追加
  2. WordPress での ホームページ URL の変更
  3. bigriver.jp から www.bigriver.jp へのリダイレクト
  4. その他、Google Adsense や Analytics
  5. サーバ証明書

www.bigriver.jp の A レコードの追加

まずは A レコードの追加からです。

Alibaba Cloud DNS のコンソールから、 Add Record をクリックします。

Host には www を指定し、あとは Value に SLB の Public IP Address 、TTL は 1秒に設定します。

ここで思いがけず、面白そうな機能を見つけます。 以下のスクリーンショットは Alibaba Cloud DNS でのレコード追加時の Type の指定なのですが、 Explicit URL という Type でリダイレクトを構成できそうです。 当初は SLB か Apache でリダイレクトかけようか考えていたのですが、これが想定通り動くのであればシンプルで良いです。後ほど試してみます。

レコードを追加後、名前解決が可能かどうか確認します。 問題ありません。 なお、以下のコンソールは Chromebook 上の Linux で実施しています(詳しい話はこちらの記事)。

この状態ですと、従来の APEX な https://bigriver.jp/ でもアクセス出来ますし、

追加した https://www.bigriver.jp/ でもアクセス可能です。ただし、実際の動きとしては https://www.bigriver.jp/にアクセスした後に、Wordpress から https://bigriver.jp/ へのリダイレクトが提供されるため、以下の画面のように https://bigriver.jp/に接続してしまいます。 これでは www.bigriver.jp の CNAME で CDN や GTM を使おうとしても実質使えないということになります。

WordPress での ホームページ URL の変更

先述のとおり、Wordpress 側では APEX な URL https://bigriver.jp/ 情報をもっているため、最初のアクセスで https://www.bigriver.jp/ に接続しても https://bigriver.jp/ にリダイレクトされてしまいます。 

WordPress の設定を変えていきます。 以下の WordPress アドレス (URL) を変更します。

以下の通り変更します。

Web ブラウザからの接続を確認します。 https://www.bigriver.jp/ でアクセス可能となりました。

この状態で APEX でアクセスするとどうなるかも確認しておきます。 最初は https://bigriver.jp/ にアクセスしますが、Wordpress の機能で https://www.bigriver.jp/ にリダイレクトされました。

bigriver.jp から www.bigriver.jp へのリダイレクト

当初の計画では Alibaba Cloud Server Load Balancer または Alibaba Cloud DNS で リダイレクトを構成する考えでした。 ただ、Wordpress の標準機能だけでリダイレクトが有効で特に問題もないため、SLB や DNS でのリダイレクトは設定しないこととしました。

サーバ証明書

HTTPS 通信のための証明書のことも考える必要があります。 ワイルドカード証明書で *.bigriver.jp を運用している場合は何も対処は不要です。 変更前の https://bigriver.jp/ も https://www.bigriver.jp/ も同じ証明書で HTTPS 通信を構成できます。

私が利用している証明書ですが、以下のとおり CN (Common Name) は bigriver.jp です。 ワイルドカード証明書は利用しておりません。

Chromebook 上の Chrome ブラウザからは以下のように見えています。 正常に見えていますが、www.bigriver.jp ではなく bigriver.jp として Chrome ブラウザが認識していることがポイントです。

上記の Chrome ブラウザのアドレスバーの bigriver.jp をクリックすると、以下のスクリーンショットの通り、 https://www.bigriver.jp/ としてブラウザはこのブログサイトに接続していることがわかります。

状況を整理すると、証明書は CN=bigriver.jp、ブラウザは https://www.bigriver.jp/ でアクセスしている、証明書エラーはなし、ということです。 CN と接続名が不一致の場合は以下のようにブラウザから警告がでるわけです。

種明かしをします。 証明書の購入時に無償で提供されていた SAN のオプションで www.bigriver.jp 利用できるようにしていました。 証明書は Rapid SSL となり、発行時のスクリーンショットは以下ですが、

下の方に無償SANのオプションがあります。 ここで www.bigriver.jp を有効にしているため、https://bigriver.jp/ も https://www.bigriver.jp/ の両方を1枚の証明書でSSL 通信を構成できたということになります。

その他の Google Adsense や Analytics

他に今回の変更で影響が受けそうなものが無いか考えます。 

まずは Google AdSense。 サイトとして bigriver.jp を登録しています。 ここには基本的に APEX を登録します。なので対処は不要となるはずです。

試しに www.bigriver.jp を登録しようとしますが、

このサイトはすでに追加されています。 と案内されます。 ということで対処は不要となります。

Google Analytics にも プロパティ名の デフォルト URL にサイトのURLの情報を保持しています。 これは変える必要があるのか、ちょっと判断がつきません。 これまでの統計情報が消えてしまうリスクはありますが、ものは試しに www.bigriver.jp に変えてみます。

変更直後は、 Analytics の画面で過去のアクセス情報は残っています。 ただ、タイムラグが多少あるシステムなので明日あたりにどうなっているかまた確認して見る必要はあります。

まとめ

WordPress 環境で Zone APEX な URL を変更することが出来ました。 結果的にはハマりポイントなども特になく、 DNS の Aレコードを追加後、Wordpress のWordPress アドレス (URL) を忘れずに変更するだけでした。

以上