WordPressの管理画面を使うときHTTPSで接続できるようにする.

管理画面にアクセスするためにはユーザー名とパスワードを入力しなければならないわけですが,ただのHTTPだとちょっと不安だったのでHTTPSで接続できるようにしました.

手順としては,

  1. 秘密鍵,証明書等の作成
  2. Apacheの設定
  3. WordPress HTTPSプラグインの追加
で管理画面にHTTPSでアクセスできるようになります.

まず,秘密鍵,証明書等をopensslを使って作ります.

手順はここがとてもわかりやすくまとまっていたのでこの通りにやりました.

OSはCentOSではなくUbuntuなので,ディレクトリ構成がちょっと違っていたためssl鍵は/etc/apache2/sslにおいておきました.

Apacheの設定ファイルは,
conf.d/ssl.confとして,

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
SSLPassPhraseDialog  builtin
SSLSessionCache        "shmcb:/var/run/apache2/ssl_scache(512000)"
SSLSessionCacheTimeout  300
SSLMutex  "file:/var/run/apache2/ssl_mutex"

WordPress用の設定は,sites-available/wordpress

<VirtualHost *:443>
    ServerName blog.hoge.com
    VirtualDocumentRoot /srv/www/%0
    ServerAdmin hoge@example.com
    ErrorLog ${APACHE_LOG_DIR}/wp-error-ssl.log
    TransferLog ${APACHE_LOG_DIR}/wp-access-ssl.log

    SSLEngine on
    SSLProtocol all -SSLv2
    SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
    SSLCertificateFile /etc/apache2/ssl/blog.crt
    SSLCertificateKeyFile /etc/apache2/ssl/blog.key

    CustomLog "/var/log/apache2/ssl_request_log" \"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

    # Store uploads in /srv/www/wp-uploads/$0
    RewriteEngine On
    RewriteRule ^/wp-uploads/(.*)$ /srv/www/wp-uploads/%{HTTP_HOST}/$1
</VirtualHost>

と追加.
最後にports.confに

NameVirtualHost *:443

と一行追加してApacheの設定は終わり.

最後に,WordPressの管理画面から,プラグイン,新規追加でWordPress HTTPSというプラグインを追加します.

Force SSL Administrationにチェックを入れると,管理画面には必ずHTTPSでアクセスするようになります.
Force SSL Exclusivelyにチェックを入れると,管理画面以外,記事とかへのアクセスは,必ずHTTPになります.

これで終了.