WordPressの管理画面へのアクセスについてSSLによるアクセスを強制するには、「define('FORCE_SSL_LOGIN', true);」をwp-config.phpへ指定します。http://example.jp/, https://example.jp/wp-admin/ のような組み合わせでサーバが1台構成なら、簡単に実現できます。
単純なシステム構成のときは、これでよいのですが、リバースプロキシと組み合わせる場合は、もう少し設定が必要です。
まず、リバースプロキシを使うときには、次のような設定が必要になります。
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST']; $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
また、実際のサイトURLを提供するサーバと稼動させているサーバが違うので、次のような設定が必要になります。(WP_CONTENT_URLの指定は必要に応じて)
define('WP_SITEURL', 'https://example.jp/wordpress'); define('WP_HOME', 'https://example.jp/wordpress'); define('WP_CONTENT_URL', 'https://example.jp/wordpress/wp-content');
WordPressは簡単に導入できるようになっているため、ちょっとトリッキーなことをしようとすると動きませんが、これぐらいならできるわけですね。
ちなみに、公開はhttpで、管理画面はhttpsとして、httpのホストとhttpsのホストが一致していないURLで動作させることはできないようです。たとえば、http://example.jp/web/ を公開URLにして、https://system.example.jp/web/wp-admin/ を管理画面にする、みたいなことはできないのですね。MTOSだとできます。SSL通信路の確保はそれなりにコストがかかるので、公開URLと管理用URLのホスト名を別々にしたいことはよくあるのですが、簡単に実現する方法がないようなので、なんとかならないかなぁ、と考えているところです。