WordPressで複数サイトのインストール Part2

前回、WordPressを複数サイトインストールする方法を説明しましたが、今回は複数サイトでインストールした場合のHTTPS化を説明する。

HTTPS化の流れは以前紹介した以下の記事を参照していただきたい。
流れは証明書の作成⇒Apacheのvirtualhostの設定⇒wordpressの設定と順番に説明していく

WordPressのセキュリティ向上-管理画面のHTTPS化 ~AWSで作るWordPress~ Part.5
WordPressはインストールしたばかりでは、外部の攻撃に非常に弱いです。 特に記事の更新をしている管理画面はデフォルトではHTTPでの...
WordPressで複数サイトのインストール
レンタルサーバでのWordPressの複数インストールは説明しているサイトが多いですがここでは複数のデータベースで複数WordPressを”...
スポンサーリンク

SSL証明書の作成と格納

以前SSL証明書について説明したが、それにのっとりSSL証明書を発行してみる。

以下のコマンドで秘密鍵とCSR(証明書の要求書)を作成する。

cd /var/tmp/
openssl ecparam -out private2.key -name prime256v1 -genkey
openssl req -new -key private2.key -out request.csr

CSR発行時の設定については以下の記事で説明しているためそこを参照してください。
http://www.neteng.co/?p=231

通常ここで作成したCSRをベリサインなどの証明書発行局へ送付し、SSL証明書を発行してもらうのだが。
ここでは自己署名による証明書の発行する。

openssl x509 -days 3650 -req -signkey private2.key < request.csr > server2.crt

これで証明書の発行が完了した。ここで作成したものは以下の三つです。

  1. private2.key
    SSLサーバ証明書に紐付く秘密鍵
  2. request.csr
    SSLサーバ証明書を発行するための要求書
  3. server2.crt
    SSLサーバ証明書

1と2を証明書と秘密鍵の格納フォルダに移動させます。

cp private2.key /etc/pki/tls/private/
cp server2.crt /etc/pki/tls/certs/

SSL_MODの設定変更

SSL_MODの設定変更を行う。

emacs /etc/httpd/conf.d/ssl.conf

HTTPSでのVirtualServerの有効化

NameVirtualHost *:443

既存サイトのDocumentRootとServerNameを設定する。
DocumentRoot=既存サイトのWordPressがインストールされているディレクトリ
ServerName=既存サイトへアクセスするURL

<VirtualHost _default_:443>
#
# General setup for the virtual host, inherited from global configuration
DocumentRoot /var/www/html
ServerName www.neteng.co:443

次に新規サイトのVirtualHostを作成する。
DocumentRoot=新規サイトのWordPressがインストールされているディレクトリ
ServerName=新規サイトへアクセスするURL

<VirtualHost *:443>

DocumentRoot /var/www/seo/
ServerName seo.neteng.co:443

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on

SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2

SSLCipherSuite ECDH+AES256:RSA+AES128:ECDH+AES128:+SHA:+SHA256:!aNULL

SSLCertificateFile /etc/pki/tls/sslcert/server2.crt

SSLCertificateKeyFile /etc/pki/tls/sslcert/private2.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

#   Per-Server Logging:
#   The home of a custom SSL log file. Use this when you want a
#   compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

WordPressの変更

「wp-config.php」を開いてHTTPS用の設定を追加します。

 # emacs /var/www/seo/wp-config.php
define('WP_SITEURL', 'https://サイト名');
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

最後に

これでHTTPS化は完了です。
HTTPS化はパスワード流出を防ぐために大事なことなので、必ずやりましょう。