SSLの取得
無料で使えるSSLで、sslの証明書を取得しましょう!
やり方は、この方の記事が大変わかりやすいです。→ StartSSLの無料サーバー証明書を使う
概要
http:// でも https:// でもアクセスできるサイトにしようと思います。
- wp-config.phpの編集
- nginxの設定
設定する
- wp-config.phpの編集
schemeによってhttpsにするか判断します。/** SSL setting */ define('FORCE_SSL_ADMIN', true); if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS']='on';
- nginxの設定
wordpressが動作しているnginxの設定に、以下の様にx_forwarded_protoに $schemeをセットします。< 略> proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Remote-Addr $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; < 略>
設定を反映します。
% sudo /etc/init.d/nginx reload
無限リダイレクトループに陥ったら
GoogleでwordpressのSSL化で検索すると「設定」→「一般」→「WordPress アドレス (URL)」と「サイトアドレス (URL)」
のスキーマを http:// を https:// にするとありますが、これをやると、ページがループしてアクセスできなくなっちゃうことがあります。
こうなるともう、管理ページにすらログインできなくなっちゃうので、mysqlの以下のカラムの値を無理やり修正する必要が出てきます。
mysql -u USER -p PASS DBNAME mysql> show databases; mysql> connect YOUR-DATABASE-NAME mysql> SELECT * FROM wp_options WHERE option_name = 'siteurl'; mysql> SELECT * FROM wp_options WHERE option_name = 'home'; mysql> begin; mysql> UPDATE wp_options SET option_value='http://YOURDOMAIN' WHERE option_name = 'siteurl' mysql> UPDATE wp_options SET option_value='http://YOURDOMAIN' WHERE option_name = 'home' mysql> SELECT * FROM wp_options WHERE option_name = 'siteurl'; mysql> SELECT * FROM wp_options WHERE option_name = 'home'; mysql> commit; mysql> \q
これでアクセスしたら治ります。。。
あと、プラグインも試しましたが、やはりループを起しましたとさ。ヽ(´ー`)ノ