とあるお仕事でWordPressの導入・カスタマイズのお手伝いをしました。
その時のサーバー選択にまつわるお話です。
まさかの事態。WordPress+SSLがさくらサーバーでは少し厄介
今回クライアントの要望としては「SSLの証明書に毎年数万円のコストを払うのが難しいので、共有SSLで、お問い合わせページだけでもSSL化できないか」ということでした。
共有SSL自体の是非については色々あると思いますが、さくらサーバーであれば一応は初期ドメインごとの共有SSLが使用できるので、パスで切られるようなユーザーごちゃまぜの共有SSLよりは幾分マシだろうという認識で、さくらサーバー+共有SSLでのお問い合わせ環境構築を試みる事になりました。
(よほど事情がなければオススメしないわけなので)共有SSL自体の使用経験は実はほぼ無かったのですが、概要はある程度理解していて「たいして難しい設定はないだろう」と踏んでいました。実際にコントロールパネル上からの設定は難しいことはなかったのですが、結局さくらサーバー特有の仕様の壁にぶつかってドハマりしてしまいました。実はさくらサーバーのSSL仕様については、共有SSL、専用SSL問わず1つの注意書きがあります。
SSL利用時の注意点のページの「3. 環境変数の取扱い」の項目にある最後の1行…
mod_rewriteによるURLの書き換えはできません。
これです。これこそがさくらサーバーで、WordPress+SSL を実装する上で大きな障害となります。
ご存知の方も多いと思いますが、WordPressのパーマリンク設定はこのmod_rewriteを使用しています。ですので、さくらサーバーの公式仕様としては「(パーマリンク設定を初期から変更した)WordPressのSSL化はできない」という事になります。
ただし、一応の抜け道はあります。こちらの記事が詳しいです。具体的な対策も書かれています。
さくらのレンタルサーバでHTTPS(SNI SSL)な独自ドメインのWordpressサイトを構築する際の注意点
実際、上記の方法で、WordPressの挙動を変える事はできるのですが、これを用いたノウハウの多くは「サイト全体のSSL化」を前提としていて、今回のように共用SSLで「お問い合わせページだけ」HTTPS化しようとした場合には、また別の障害があり、結局今回は(予算と時間なども含めた総合判断として)クライアントの要件が実現できないと判断するに至りました。
また、もう1点補足すると、この対策で判定に用いている「$_SERVER[‘HTTP_X_SAKURA_FORWARDED_FOR’])」というのはさくらサーバー独自のもので、現時点で仕様変更の予定はないようですが、恒久的にサポートが保証されているものでもないようです。
結果、さくらサーバーでのSSL化を断念することになります。
少し脱線しますが、さくらサーバーを最初に使用したのはもう10年近く前で、さくらインターネットが開催している「石狩データセンター見学ツアー」にも参加した仲(?)で、いくつかのサーバー(ロリポップ、ヘテムル、コアサーバー、WebARENAなど)を渡り歩きながらも、結局一番長く使っているのはさくらサーバーでした。それだけ信頼していたさくらサーバーなんですが、まさか「WordPress+SSL」という大して特殊でもない要件でこんな壁にぶつかってしまうとは「マジか!」というのが正直なところでした。
結局、エックスサーバーがすべて解決してくれた
さて、そんなところにエックスサーバーについてのある情報を発見しました。
全サーバープランで独自SSLが無料・無制限に利用可能に!「独自SSL」機能の強化のお知らせ(2016/06/30) です。
サイト証明のみの「Let’s Encrypt」という簡易的なSSL証明書ですが、独自ドメインのSSLが無料で簡単に発行できるサービスが始まっていました。共用SSLよりもずっと良いですし、今回のクライアントの要望にピッタリです。
仕様を確認したところ1つだけ気になる点があり、
本サービスは、利用者が当サーバーで運用している独自ドメインや、サブドメインを利用したSSL接続を提供するものです。
参照元:エックスサーバー 独自SSL機能
この「当サーバーで運用している独自ドメイン」というのが、
- ドメインの管理自体をエックスサーバーで行っているものだけを指すのか
- ドメインを外部サービスで管理したままDNSだけをエックスサーバーに向けたものも含むのか
どちらかが分からなかったため少々不安があったのですが、結論だけ書くと後者でもOKでした。
早速エックスサーバーでの検証開始…となるわけですが、検証と言うほどの事をしないうちにクライアントが希望していた全設定…
- お問い合わせには「MW WP FORM」プラグインを使用
- WordPress全ページ(管理画面含む)のHTTPS化
- 独自SSLの使用(コントロールパネルで数クリック程度で設定可能でした)
- mod_rewriteの使用ももちろん問題なし
- HTTPへのアクセスはHTTPSに転送(.htaccessで設定)
といった設定があっという間にできてしまいました。さくらでの苦労は一体…。
そんなわけで、WordPress+SSLはエックスサーバーの方が超カンタンだった!というお話でした。
余談:さくらサーバーとエックスサーバーについて
さくらサーバーと比較して、エックスサーバーにはもう1つ利点がありました(2016.09.13時点)。
「PHP5.6.24/PHP7.0.9 から任意に選択・切り替えして利用可能」な点です。PHP7 は大幅にパフォーマンス向上しているそうで、WordPressの高速化に貢献してくれます。
参考記事:WordPress高速化 PHP7.0へのバージョンアップが最も効果がある(約5.7倍の高速化)
一応、さくらサーバーの方にもエックスサーバーにはない利点はあるのですが、
「さくらのレンタルサーバ」のWordPressにてモリサワのWebフォントを無料でご利用いただけるようになりました(2016.06.29)
これについては以前に試したことがあって、
・1ドメインに対して月間2.5万PVまで という制限がある
・ウェブフォントなので仕方がないが表示に若干の遅延を感じる
という2点から、個人的にはあまりオススメはできませんが、場合によってはこの点がポイントとなってさくらの方が合う方もいるかもしれません。モリサワフォントは使おうとすると値段が結構お高いですからね。
そういえば、Twitterを眺めていたらこんな記事も一部で話題になっていましたね。
同時アクセス数で『さくらサーバーとエックスサーバー』両方落としてみた