ssl-ikt2

RapidSSLを購入して、自宅DebianサーバーのバーチャルホストのサブドメインWordPressサイトをまるごとSSL通信化

2014/10/11[公開] 2016/07/24[最終更新]

このブログがサブドメインアドレスでWordPressにて運用していまして、SEO対策にいいと聞いたので、考えあさましく一番安いRapidSSLで、まるごとSSL通信に変更した記録です。

すでにバーチャルホストのメインサイトは以前設定したジオトラスト社のクイックSSLプレミアムでSSL通信になっている前提です。

今回は、サブドメインのサイトもSSL通信にしたときの備忘録です。

まず、前提として。

  • apache2、opensslなどがインストール済み
  • wordpressでサイト構築済み
  • 自宅サーバー1台でネームベースのバーチャルホスト設定
  • 証明書購入代理店はリピートで、SSLストアで購入
  • 作業用フォルダとして /etc/apache2/ssl フォルダを作成済み

ちなみに、RapidSSLはジオトラスト社の別ブランドとのことで、手順はほぼ前回のジオトラスト社と同じなのでサクサク進みました。

自サーバーで秘密鍵を作成してCSRを生成する

まずは、証明書購入時に必要なCSRとやらを生成します。

作成した疑似乱数ファイル(rand2.dat)から、秘密鍵を作成します。

トリプルDESを使い、2048bitの秘密鍵(ファイル名:rapidkey.pem)を作成

パスフレーズを聞かれるので入力します。

Enter pass phrase: ”パスフレーズ入れる”

Verifying – Enter pass phrase: “もう一度パスフレーズ入れる”

パスフレーズは今後も使います。メモを忘れないように。

作成した秘密鍵ファイルからCSR作成(ファイル名:rapidcsr.pem)

これで、rapidcsr.pemというファイルが出来上がって、ファイルの中身がCSRです。

セキュリティのため、このフォルダ内のファイルのパーミッションを変更します。

RapidSSLの購入とアクティベーション

SSL証明書を購入したのはSSLストアというところです。

前回、スムーズに購入できたのでリピート利用です。

  1. 会員ページにログインする。
  2. 購入予定金額分のデポジットをPayPalかクレカで入金。
  3. RapidSSLを買物カゴに入れてデポジットで購入。
  4. アクティベーション画面へ行く。
  5. 先ほど作成したCSRと貼り付け、必要事項を入力する。
  6. RapidSSLより届くメールのリンクを開き、「承認する」をクリック。

rapid1

これで、購入とアクティベートが完了です。

Debian+Apache2 自宅サーバーの設定

ファイルを3つ作って、apache2のports.confとsites-availableの設定を変えます。

ports.confでポート443でもバーチャルホストを有効に設定

デフォだとポート80しかバーチャルホストが有効になっていないのでポート443でも有効に変更します。

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    NameVirtualHost *:443     ←行を追加
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

 「Ctrl+X」→Y→Enter で保存

(ファイル1)証明書ファイルを作成

RapidSSLからアクティベーション後に届く証明書発行メールの本文の最後に記載されている下記の赤部分をコピーする。

—–BEGIN CERTIFICATE—–
AQ8AMIIBCgKCAQEAsnzO9ehFhF/uUoLZo5fjTtFXCHL9n5Pux+UMCr8a
rT8hi3KbK/AxdsrzMjRAL+fkj/DqHolE1olgnOabW3A/2U29dvqpnhjcn0N
7gauMhEq3mJS0iUSUpWUf/FaBghoZvvGmjnkdXdyabYcvu4HqTW3+
省略                  ※赤い部分だけをコピー
KtEGQE1Vv3TNWEPZCM40qKcuLKbncD9O7mDayI8RiSOC/3UFlnlnW4XX
Kmvcjrg5YPHpNMS1ooeTshn+C9gbID+ch9jqUHLXRs6nmZFpnj7rG0HfL
5swREKpHNKPkF38rMKb9FtCMf9jCE2i9SeBleGNTteX6ltDTtIcC8LWbeFm
—–END CERTIFICATE—–
INTERMEDIATE CA:
—————————————
—–BEGIN CERTIFICATE—–
MIID+jCCAuKgAwIBAgIDAjbSMA0GCSqGSIb3DQEBBQUAMEIxCzA
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJ
YWwgQ0EwHhcNMTAwMjI2MjEzMjMxWhcNMjAwMjI1MjEzMjMxWjB
省略
lvD16lo8nBa9AlPwKg5BbuvvnvdwNs2AKnbIh+PrI7OWLOYdlF8cpOLN
YWE5XIlMSB1CyWee0r9Y9/k3MbBn3Y0mNhp4GgkZPJMHcCrhfCn13m
vTezMGnGkqX2Gdgd+DYSuUuVlZzQzmwwpxb79k1ktl8qFJymyFWOIPllB
—–END CERTIFICATE—–

コピー部分は、RapidSSLの会員サポートページからでも確認できます。

コピーした中身を張り付けて証明書ファイルを作成します。

証明書ファイルを任意の名前で新規作成(例:rapidcert.pem)

コピーした内容をペーストしたら「Ctrl+X」→Y→Enter で保存新規保存します。

(ファイル2)秘密鍵ファイルを作成

CSR作成する際に使った秘密鍵ファイルをそのままコピーして使います。

秘密鍵ファイルをコピーして保存(例:rapidkey.pem)

パーミッションを同フォルダ内ファイルと同じ設定に変更

(ファイル3)中間証明書ファイルを作成

コチラを開きます。

Download RapidSSL and WildCard Intermediate CA

https://knowledge.rapidssl.com/support/ssl-certificate-support/index?page=content&id=AR1549&actp=search&viewlocale=en_US

rappp1

赤線の部分をクリックして、開いた記述を全部コピーします。

コピーした部分を張り付けしたら「Ctrl+X」→Y→Enter で保存

sites-availableの設定

/etc/apache2/sites-available/default-sslを編集します。

長い記述なので途中省略していますが、

<IfModule mod_ssl.c>

<VirtualHost _default_:443>
    ServerAdmin webmaster@localhost
        ServerName   www.ikt-s.com
    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
~~省略~~
~~省略~~
        downgrade-1.0 force-response-1.0
    # MSIE 7 and newer should be able to use keepalive
    BrowserMatch “MSIE [17-9]” ssl-unclean-shutdown

</VirtualHost>

</IfModule>

 上下一行以外の赤字の部分をコピーして、下のように貼り付けます。

<IfModule mod_ssl.c>

<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName www.ikt-s.com
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
~~省略~~
~~省略~~
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch “MSIE [17-9]” ssl-unclean-shutdown

</VirtualHost>

<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName www.ikt-s.com
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
~~省略~~
~~省略~~
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch “MSIE [17-9]” ssl-unclean-shutdown

</VirtualHost>

</IfModule>

 そして張り付けた部分を、サブドメインに適した記述に変更します。(例は、当ブログ用のモノです。)

<VirtualHost *:443> ←変更
ServerAdmin webmaster@localhost
ServerName blog.ikt-s.com   ←変更
DocumentRoot /var/blog     ←変更
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/blog/>    ←変更
Options Indexes FollowSymLinks MultiViews
AllowOverride All    ←要確認
Order allow,deny
allow from all
</Directory>
~~省略~~
~~省略~~
# A self-signed (snakeoil) certificate can be created by installing
# the ssl-cert package. See
# /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
# If both key and certificate are stored in the same file, only the
# SSLCertificateFile directive is needed.
SSLCertificateFile /etc/ssl/certs/rapidcert.pem ←証明書ファイル
SSLCertificateKeyFile /etc/ssl/private/rapidkey.pem ←秘密鍵ファイル

# Server Certificate Chain:
# Point SSLCertificateChainFile at a file containing the
# concatenation of PEM encoded CA certificates which form the
# certificate chain for the server certificate. Alternatively
# the referenced file can be the same as SSLCertificateFile
# when the CA certificates are directly appended to the server
# certificate for convinience.
#SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt

# Certificate Authority (CA):
# Set the CA certificate verification path where to find CA
# certificates for client authentication or alternatively one
# huge file containing all of them (file must be PEM encoded)
# Note: Inside SSLCACertificatePath you need hash symlinks
# to point to the certificate files. Use the provided
# Makefile to update the hash symlinks after changes.
#SSLCACertificatePath /etc/ssl/certs/
SSLCACertificateFile /etc/ssl/certs/rapidca.pem  ←中間証明書ファイル

~~省略~~
~~省略~~
nokeepalive ssl-unclean-shutdown
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch “MSIE [17-9]” ssl-unclean-shutdown

</VirtualHost>

 最後に保存したら、apacheを再起動します。

※注意:もし、パスフレーズをスクリプト入力に設定している場合は、設定を元に戻しておかないとエラーになります。

Server blog.ikt-s.com:443 (RSA)

Enter pass phrase:

Server www.ikt-s.com:443 (RSA)

Enter pass phrase:

OK: Pass Phrase Dialog successful.. ok

このように、サイトごとにパスフレーズを聞かれたら成功です。

※証明書ファイルと秘密鍵ファイルのバックアップを外部に保存しておくのを忘れずに。

【2014/12/12追記】

この記事ではすでにメインサイトでSSL通信が有効だったので不要でしたが、default-sslを初めて利用する場合はここで

が必要です。

WordPressの設定変更

まるごとSSL通信にする場合、WordPressの設定は簡単です。(プラグインすら不要です。)

rappp2

管理画面の「設定」-「一般」のWordPressアドレス2か所を変更するだけす。

プラグイン「Search Regex」で画像などのリンク先を変更

画像ファイルのリンクなど、http://から始まる記述があるページは、アドレスバーにびっくりマークが出てしまいます。

過去の投稿などのリンクを一括で変更してくれるプラグイン「Search Regex」などで一括変換しましょう。

証明書シールを貼る

お好きなところに証明書シールを張り付けましょう。

rapidssl_seal

感想

ひとつ千円ちょっとですから、気軽にSSL通信サイトを構築できます。

ワイルドカード対応RapidSSLが一万円弱ですが、自宅サーバーならせいぜいサイト2つか3つという場合、RapidSSL複数購入のほうが安く上がります。

すべてのサイトをSSL通信に!というのも実現可能かもしれませんね。

今のままだと、サーバー再起動時に毎回パスフレーズ入力を求められます。

対処方法はコチラ

自宅Debian(wheezy)サーバーで起動時にSSL秘密鍵のパスフレーズを自動入力させる方法

こちらの記事もどうぞ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です