カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

さくらインターネット 常時SSL化の弊害

この記事は最終更新日から1年以上経過しています。

さくらインターネットで常時SSL化した際に起こる弊害について、
限られた条件下ではありますが、解決法を見つけたので書いておきたいと思います。

まずルートディレクトリになんらかのWEBサイト(WordPressでも何でも)を運用しているとします。
そして下層ディレクトリにWordPressをインストールし、オプションのサブドメインを使用している場合のお話です。

例)test.achoo.jpというサブドメインでルートディレクトリを/achoo/に設定

さくらインターネットのサーバーで共有SSLを利用する場合、SSLを設定できるのは
デフォルトのサブドメインのみです。
オプションのサブドメインで下層ディレクトリをルートディレクトリとしている場合には
対象外となります。

常時SSL化を有効化し、下層ディレクトリのWordPressのサブドメインにアクセスしてみると
SSLに対応していないのにSSLでアクセスさせられます。
設定のURLをhttpで設定していても、ちゃんと表示できるのはトップページだけでした。
サブページに関してはHTMLは問題なく読み込めているものの、内部のCSS等の読み込みのパスがSSL化されてしまって読み込めない状態になっていました。

色々調べても有用なものがなく、.htaccessも触ってみたりしましたがなかなか解決しませんでした。
最終的に行き着いたのが、wp-config.phpに無理矢理SSLではないと設定を記述することで解決しました。

解決方法

解決方法はwp-config.phpに以下を追加します。

$_SERVER['HTTPS'] = 'off';
$_ENV['HTTPS'] = 'off';

これで解決!と思ったところ、ログインしようとすると
「このページにアクセスする権限がありません。」と表示されダッシュボード(管理画面)が表示されません。

対処法は、先ほど追加したHTTPSオフの設定の記述を
require_once(ABSPATH . 'wp-settings.php');よりも前に書く、でした。

※ただし、共有SSLを利用し、さくらのSSL化プラグインを使った場合はその限りではないようです。

サブドメインでもSSL対応

常時SSLが当たり前になった今、さくらインターネットがサブドメインにもSSLに対応しているんじゃないか?と管理画面で確認してみると、案の定対応していました。※2018年8月から対応

前述のwp-config.phpに書き込んだHTTPSをoffにする内容を削除し、サブドメインに対して共有SSLを有効にするよう設定。
無事にSSL化に成功しました。

この記事がお役に立ちましたらシェアお願いします
1,483 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です