さくらサーバーでSSL通信が確立されない問題

相談内容

  • SSL設定を行いました
  • WordPressダッシュボードは問題ありません
  • WordPressサイト側がSSL確立状態になりません

解決までの経緯

  • SSL通信かどうかの判定ロジックを埋め込んで各ページを調査
<?php
  echo $_SERVER['HTTPS'];
  • 上記よりサーバー側の問題であると断定
  • さくらインターネットのサポート情報などを読み漁ると下記にたどり着く

SSL化を実行したらサイトにアクセスできなくなった
https://help.sakura.ad.jp/hc/ja/articles/115000051662–WordPress-常時SSL化プラグイン-トラブルシューティング#03

  • サポート情報通りhtaccessに下記を追加する
    • SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1 の部分が重要
    • 結果 $_SERVER['HTTPS'] で値を取得できるようになる
# BEGIN Force SSL for SAKURA
# RewriteしてもHTTPS環境変数を有効にする
SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1
# 常時HTTPS化(HTTPSが無効な場合リダイレクト)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{ENV:HTTPS} !on
RewriteCond %{REQUEST_URI} !^/wp-cron.php$
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# END Force SSL for SAKURA

対応期間、コメント

  • 当初はWordPress側の問題と思っており $_SERVER['HTTPS'] が取得できず「あれ、なぜ?」という感じだった
  • サーバーの問題と感じすぐにさくらのサポートサイトを見たのでスムーズに解決できた
  • 3時間程度で完了報告