WordPressのSSL化
カテゴリ:Code Archives, WordPress, サーバー 投稿日:2016年8月5日ん?これ、SSLじゃないぞって…
管理画面だけです。
緊急編集
書いてることが全面的に間違ってました
理由:証明書がLet’s Encryptだからもし証明書切れたらアクセス不能になる。別にただのブログっぽいサイトだしSSL要らん
どうしてもって人はアドレスバーをhttpsにしましょう。外部CSS,JSも全てSSLに対応させてます。
じゃあなんでSSLにしたんだ?:それは次回以降の記事の執筆に必要だったから。お楽しみに
で、とりあえずただ管理ページのアドレスをhttpsにしてみたわけですが、すると外部のWPリソースがSSLじゃなくて背景が真っ白になりました…
調べると、wp-config.phpに、
define('FORCE_SSL_ADMIN', true);
を入れろと出てきたので入れてみる。
リダイレクトの嵐。
また調べると公式がその下に、
define('FORCE_SSL_ADMIN', true); if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) $_SERVER['HTTPS']='on';
を入れろと言ってきたので、入れた。あかん。
てか、これPHP文法的に間違ってるし。(間違ってません)
$_SERVER[‘HTTP_X_FORWARDED_PROTO’]がhttpsを返したら$_SERVER[‘HTTPS’]もONを返したいってことだろうから・・・って返すことは自明だからもうこのif文削れ!!
結論
define('FORCE_SSL_ADMIN', true); $_SERVER['HTTPS']='on';
おしまい。
これ、ifを使わないことによって、WPサーバーから持ってくる外部CSS/JSも自動でSSLになるっぽいです。無理やり$_SERVER[‘HTTPS’]=’on’;にしてSSLになっているかのように誤認させたし
以前httpからhttpsに自動でリダイレクトする.htaccessを作ったら反応しなくて、結局調べて
RewriteEngine on RewriteCond %{ENV:HTTPS} !^on$ RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
を書いて終わったんですが、やっぱりなんかさくらのSSL系はなんかあるんですかね…
高性能な自鯖が欲しいと思った瞬間でした。