SSLの取得
無料で使えるSSLで、sslの証明書を取得しましょう!
やり方は、この方の記事が大変わかりやすいです。→ StartSSLの無料サーバー証明書を使う
概要
http:// でも https:// でもアクセスできるサイトにしようと思います。
- wp-config.phpの編集
- nginxの設定
設定する
- wp-config.phpの編集
schemeによってhttpsにするか判断します。
1234/** SSL setting */define('FORCE_SSL_ADMIN', true);if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')$_SERVER['HTTPS']='on'; - nginxの設定
wordpressが動作しているnginxの設定に、以下の様にx_forwarded_protoに $schemeをセットします。
1234567< 略>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;< 略>
設定を反映します。
1% sudo /etc/init.d/nginx reload
無限リダイレクトループに陥ったら
GoogleでwordpressのSSL化で検索すると「設定」→「一般」→「WordPress アドレス (URL)」と「サイトアドレス (URL)」
のスキーマを http:// を https:// にするとありますが、これをやると、ページがループしてアクセスできなくなっちゃうことがあります。
こうなるともう、管理ページにすらログインできなくなっちゃうので、mysqlの以下のカラムの値を無理やり修正する必要が出てきます。
1 2 3 4 5 6 7 8 9 10 11 12 |
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 |
これでアクセスしたら治ります。。。
あと、プラグインも試しましたが、やはりループを起しましたとさ。ヽ(´ー`)ノ