RapidSSLでブログをSSL化してみた

最近チェックしてみたら物凄く安くなっていたのでこのブログもSSLに対応させることにしました。

なんと、RapidSSLが1080円/年!
トップドメインを取っている人は、迷わず買いです!

Googleも「SSL化されたWebサイトをSEOの評価として優遇します」
ということだったので、少しずつSSLに対応してくるブログも増えてくるでしょうね。

さて、ここでは導入例を紹介します。

Apache + OpenSSLはインストール済み

秘密鍵作成のための擬似乱数の情報を生成します。

# mkdir -p /etc/pki/tls/certs/apache
# cd /etc/pki/tls/certs/apache 
# openssl md5 * > rand.dat

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

# openssl genrsa -rand rand.dat -des3 2048 > 2014key.pem

秘密鍵を保護するためのパスフレーズの入力を求められます。
任意のフレーズを入力し、[Enter]キーを押します(同じフレーズを2度入力します)。
ここで入力するパスフレーズは、絶対に忘れないように大切に管理してください。

作成した秘密鍵ファイルからCSRを生成します。

# openssl req -new -key 2014key.pem -out 2014csr.pem

秘密鍵のパスフレーズの入力を求められます。
秘密鍵作成時に指定したパスフレーズを入力し、[Enter]キーを押します。

続いて、ディスティングイッシュネーム情報を順に入力していきます。

 Country Name (2 letter code) [GB]:JP (国コード)
 State or Province Name (full name) [Berkshire]: (都道府県名)
 Locality Name (eg, city) [Newbury]: (市町村名)
 Organization Name (eg, company) [My Company Ltd]: (組織名)
 Organizational Unit Name (eg, section) []: (組織内ユニット名)
 Common Name (eg, your name or your server's hostname) []: (サーバ名 https://www.falog.net/ の場合→ www.falog.net)
 Email Address []: (管理者メールアドレス)

CSRが生成されます。
作成されたファイルの中身
—–BEGIN CERTIFICATE REQUEST—–
~~~
—–END CERTIFICATE REQUEST—–
も含め全部コピー
サイトにログインして
SSLストアのアクティベート入力画面に貼り付けます。

すると、いくつかメールが届きます。
rapidssl1

rapidssl2

rapidssl3

rapidssl4

rapidssl5

rapidssl6
ひたすら、メールを確認してリンクをクリックして、次のメールを確認です。
最後のメール「www.falog.net RapidSSL Order: ##### Complete」
にcrtキーがのってました。

Web Server CERTIFICATE
をコピーして
2014crt.pem
というファイルを作成してペースト

INTERMEDIATE CA
をコピーして
2014intermediate-crt.pem
というファイルを作成してペースト

※ここで、改行コードがCRLFなどにならないように注意してください。
確認方法

# cat -e 2014crt.pem 2014intermediate-crt.pem

ここで、行の末尾に「$」がついていればOKです。
「^M」と表示されていたら、CRが入っているので変換してください。

変換操作 (ちゃんとなってる方は飛ばしてください)

# nkf -Lu 2014crt.pem > 2014crt.pem2
# mv 2014crt.pem2 2014crt.pem
# nkf -Lu 2014intermediate-crt.pem > 2014intermediate-crt.pem2
# mv 2014intermediate-crt.pem2 2014intermediate-crt.pem

追記:
最近のnkfには–overwriteというオプションがあるそうです。 > リダイレクトしなくても上書きができるそうです。
なので、この場合は以下のようにする。

# nkf --overwrite -Lu 2014crt.pem
# nkf --overwrite -Lu 2014intermediate-crt.pem

最後にパーミッションを400にします。

# chmod 400 2014*

あとは、Apacheの設定を変更します。
http.confかssl.confを設定してください

vi /etc/httpd/conf.d/ssl.conf
SSLCertificateFile   /etc/pki/tls/certs/apache/2014crt.pem
SSLCertificateKeyFile  /etc/pki/tls/certs/apache/2014key.pem
SSLCertificateChainFile /etc/pki/tls/certs/apache/2014intermediate-crt.pem

※本当は2014key.pemは/etc/pki/tls/private/あたりに置くのが普通かもしれないです。
気にくわないなら移動しましょう!

Apacheを再起動します。
すると、事件が!

Apache/2.2.xx mod_ssl/2.2.xx (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server www.falog.net:443 (RSA)
Enter pass phrase:

とパスワードをきいてきます。
opensslで設定したパスワードを入力すればいいのですが、毎回きいてくるので大変です。
これを回避するには2つ方法があるそうで

1つめはパスフレーズ無しの鍵にする方法
2つめは応答スクリプトを設定する方法
※参考ページ SSLのパスフレーズ(Pass Phrase Dialog)入力を省略してApacheを起動する

パスワードをクリアするのは嫌だったので、2つめの方法を採用することにしました。
/etc/pki/tls/certs/apache/pass_phrase.sh

#!/bin/sh
echo "your passphrase" #パスワードを入力
# chmod 500 pass_phrase.sh

次に、ApacheのSSL設定の書き換え ssl.confかhttpd.conf

#SSLPassPhraseDialog  builtin #コメントアウト
SSLPassPhraseDialog  exec:/etc/pki/tls/certs/apache/pass_phrase.sh #←追加

Apacheを再起動して、確認します。

Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

要求されなければOKです!

サーバの設定は終わり、次にブログツールのWordpressのほう

手っ取り早くSSLに移行するには
プラグインを使うのがいいみたいです。
WordPress HTTPS(SSL)
というプラグインを使いました。
参考ページ wordpressのサイトをまるごとSSL化する

Leave a Reply

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Related Post