今までSSLサイトを自己署名した俗に言う「オレオレ証明書」で運用していたのですが、最近安いSSL Certificates(SSL証明書)が利用できるようになってきたので使ってみました。安い証明書ということで色々調べるとNameCheapが扱っているRapidSSLが一番安いみたいです。同じRapidSSLでも本家だと年間69ドルと高かったり、日本語で扱っている所で30ドルくらいしてます。NameCheapのは3年期限だと年間12.88ドルです。今回はとりあえずということで1年期限で14.88ドルで購入しました。購入手続きをするとSSL証明書取得のリンクがユーザーパネルに現れます。

まずは下準備。SSL化するドメイン名はwww.sagamiya.comです。秘密鍵(sagamiya.com.key)を作ります。apacheの起動の度にパスフレーズを入力するのを避けたかったのでパスフレーズ無しで作りました。

CODE:
  1. # cd /usr/local/etc/apache22
  2. # openssl genrsa -out sagamiya.com.key 1024
  3. # chmod 400 sagamiya.com.key

これで-----BEGIN RSA PRIVATE KEY-----で始まり-----END RSA PRIVATE KEY----- で終わる秘密鍵が生成されました。この秘密鍵はサーバー上から外には出さないようにします。rootにしか見えないように chmod 400 します。
次に、この鍵とペアの公開鍵(sagamiya.com.csr)を作ります。
この公開鍵の作成時に証明書に表示される情報の入力が求められます。

CODE:
  1. # openssl req -new -key sagamiya.com.key -out sagamiya.com.csr
  2. You are about to be asked to enter information that will be incorporated
  3. into your certificate request.
  4. What you are about to enter is what is called a Distinguished Name or a DN.
  5. There are quite a few fields but you can leave some blank
  6. For some fields there will be a default value,
  7. If you enter '.', the field will be left blank.
  8. -----
  9. Country Name (2 letter code) [AU]:←日本なら"JP"
  10. State or Province Name (full name) [Some-State]:Queensland ←日本なら都道府県名
  11. Locality Name (eg, city) []:Gold Coast ←都市名
  12. Organization Name (eg, company) [Internet Widgits Pty Ltd]:Sagamiya.com ←組織名
  13. Organizational Unit Name (eg, section) []: ←個人なのでブランク
  14. Common Name (eg, YOUR name) []:www.sagamiya.com ←SSLで使用するFQDN
  15. Email Address []: ←ブランク
  16.  
  17. Please enter the following 'extra' attributes
  18. to be sent with your certificate request
  19. A challenge password []: ←ブランク
  20. An optional company name []: ←ブランク
  21. #

-----BEGIN CERTIFICATE REQUEST-----で始まり-----END CERTIFICATE REQUEST-----で終わる公開鍵が生成されました。 "CERTIFICATE REQUEST"とある通り、認証局(CA)に署名してもらうためのファイルということです。

次に、SSL証明書の申し込みリンクをクリックするとこんな画面が現れます。

ssl1.jpg
Select web serverでサーバーの種類を選びます。私の場合は"Apache + MOD SSL"を選びました。そして、Enter csrの窓に先程生成した公開鍵をコピペします。
そして"Next"ボタンを押すと次の画面になります。

ssl2.jpg
コピペした公開鍵の内容とドメイン名のドメイン名やwhoisの情報からAPPROVERのe-mailアドレス候補が表示されています。内容を確認してメールアドレスを選択して"Next"ボタンを押します。

ssl3.jpg

この画面ではSSL証明書の担当者の情報を入力します。 終わったら"Submit Order"ボタンを押します。

ssl4.jpg

この画面で公開鍵に署名してもらうための申し込みが完了です。すぐにドメイン名のAdministratorのメールアドレス宛に下記のようなメールが届きます。何某からSSL証明書の署名の要求が来たがドメイン名の管理者としてこれを許可するかどうかの確認です。

ssl5.jpg
私の場合、署名の要求者とドメイン名の管理者が同じ人なので問題ありません。メールにあるリンク先にアクセスしてAPPROVE(承認します)ボタンを押します。

ssl6.jpg

ssl7.jpg

これでしばらくすると-----BEGIN CERTIFICATE-----で始まり-----END CERTIFICATE-----で終わる形式の署名済みの証明書がメールが届きます。この証明書の部分をsagamiya.com.crtという名前の ファイルにコピペします。

これでSSL証明書が取得できました。あとは秘密鍵と同じ場所に証明書を置いて chmod 400 し、ApacheのSSL設定をすればOKです。私の環境では 今まで「オレオレ証明書」でSSLを動かしていたので/usr/local/etc/apache22/extra/httpd-ssl.conf の下記の部分を編集してApacheをリスタートするだけで完了です。

CODE:
  1. SSLCertificateFile /usr/local/etc/apache22/sagamiya.com.crt
  2. SSLCertificateKeyFile /usr/local/etc/apache22/sagamiya.com.key