facebookアプリサーバーにSSL証明書をインストール

facebookアプリが
2011/10からssl対応必須になった為
VPSSSL証明書をインストールしてみた。

SSLの発行は色々探していたものの
Rapid-SSLが一番安かった。※海外で無料のものもあったが、1年縛りなど条件があった為断念。
本当はワイルドカード証明書にして同じドメイン上でいくつかサービスを行っているものを
取りまとめたかったが、初めてということもあり、サブドメイン1個に対して1個の証明書を取得。

また自分の場合VPSでメールサーバーを立てていなかったので手続き上、
postmaster@xxxx.hoge.comの振り分けが必要になり
あわててpostfixdovecotの設定をすることに。。メールサーバーについては別記事に。

以下手順。
(参考)http://dounokouno.com/2011/04/07/%E3%81%95%E3%81%8F%E3%82%89%E3%81%AEvps%EF%BC%88centos-5-5%EF%BC%89%E3%81%AB-rapidssl-%E3%82%92%E3%82%A4%E3%83%
B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E3%81%BE%E3%81%A7%E3%81%AE/

環境

[サーバー] さくらVPS
[IP] 192.168.XX.XX
[対象ドメイン] http://xxxx.hoge.com
[証明書受信メール]postmaster@xxxx.hoge.com
※本当はhttp://hoge.comに対してワイルドカード証明書にして
http://xxx.hoge.comhttp://yyy.hoge.comなど複数サービスの
証明にしたかったが、ワイルドカードだと\18000もするということで今回断念。
1個だと\2400程度なのでこれでひとまず練習してみることに・・。

RapidSSLへの申込み方

1.RapidSSL申込み。まず契約期間を選択

2.linuxで作成したCSRを貼り付け(VPSの設定、2.秘密鍵の生成↓に記載)

3.確認画面

4.証明書を送信してくれるメールアドレスを選択

(ちなみに自分はVPSでメールサーバーを立てていなかったので別途postfixdovecotを設定した)

5.メールアドレスの確認画面

6.この間にカード決済で支払

7.メールに連絡されたURLにアクセスすると完了


VPS(CentOS)の設定

1.mod_sslのインストール
yum -y install mod_ssl
2.秘密鍵の生成
cd /etc/pki/tls/certs/
openssl genrsa -des3 -out server.key 2048

Enter pass phrase for server.key: (パスフレーズ)
Verifying - Enter pass phrase for server.key: (パスフレーズ)
3.秘密鍵からCSRを生成
openssl req -new -key server.key -out server.csr
---------------------------------------------------------------------
Enter pass phrase for server.key: (パスフレーズ)

Country Name (2 letter code) [GB]:JP (国名)
State or Province Name (full name) [Berkshire]:Tokyo (都道府県)
Locality Name (eg, city) [Newbury]:Sumidaku (市区町村)
Organization Name (eg, company) [My Company Ltd]:Blamestitch(会社)
Organizational Unit Name (eg, section) []: (空)
Common Name (eg, your name or your server's hostname) []:ooedoworld.blamestitch.com (ドメイン名)
Email Address []:oggata@gmail.com (メールアドレス)

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: (空)
An optional company name []: (空)
---------------------------------------------------------------------
4.CSR の内容を見る
cat server.csr
-----BEGIN CERTIFICATE REQUEST-----
-----END CERTIFICATE REQUEST-----
5.CSRをRapid-SSL.jpに送信する ====>(メール)
6.Rapid-SSL.jpからSSL サーバー証明書が送られてくる (メール)<=====
7.server証明書をコピーする
vi /etc/pki/tls/certs/server.crt
(メールで送られてきたサーバー証明書をコピーする)
8.apacheを再起動するたびにパスフレーズを聞かれないように応答を削除する
# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key: (←パスフレーズを入力)
writing RSA key
9ssl.confを編集する
# vi /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/certs/server.key
DocumentRoot "/var/www/html"
ServerName www.example.com:443
10.バーチャルホストの設定を変更(バーチャルホストを利用している場合)
vi /etc/httpd/conf.d/ssl.conf
# 以下の設定を追加
 RewriteEngine On
 RewriteLog "logs/rewrite_log"
 RewriteLogLevel 0
 RewriteCond %{HTTP_HOST} !ooedoworld.blamestitch.com$ ←SSLのホスト名
 RewriteRule ^/(.*)?$ http://%{HTTP_HOST}/$1 [L,R]
11.中間証明書をサーバーへインストール(コピー)
vi /etc/pki/tls/certs/rapidssl-chain.crt
12.SSL.confを編集して、「中間証明書」を読み込む(128行目あたり)
vim /etc/httpd/conf.d/ssl.conf
SSLCertificateChainFile /etc/pki/tls/certs/rapidssl-chain.crt
13.apache再起動
中間証明書を忘れるとこんな感じで怒られる(firefox)