最近チェックしてみたら物凄く安くなっていたのでこのブログも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ストアのアクティベート入力画面に貼り付けます。
ひたすら、メールを確認してリンクをクリックして、次のメールを確認です。
最後のメール「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化する