2009年7月12日日曜日

Namecheap で格安 SSL 証明書を取得する方法

林檎生活100: OpenSSL で自己署名証明書を作成するで,SSL 証明書を作成したが,きちんとした認証局によって署名された証明書ではないので,ブラウザやメーラからの SSL 接続時に警告が出てしまうという問題がある.

そこで今回は,ほとんどのブラウザで問題なく認証される SSL 証明書の発行サービスである RapidSSL で,SSL 証明書を取得する.この RapidSSL は,本家で$69,日本の正規販売パートナーで3,200円ということで非常に安い.でも,もっと安く済ませるために Namecheap という海外の販売サイトを使用して,$10.95という価格で取得してみることにする.

まず,最初ににやらなければならないことは,証明書署名要求 (CSR) を作成することだ.って偉そうに言ってるけど,SSL の仕組みはちゃんと理解してないので,参考文献にあげた本のとおりのコマンドだw
# cd /etc/mail/certs
# umask 066
# openssl req -new -x509 -nodes -out newcert.pem -keyout key.pem
# openssl x509 -x509toreq -in newcert.pem -signkey key.pem -out csr.pem
# rm newcert.pem

インタラクティブに入力が必要な部分は,自己署名証明書を作成するときと同じ.自己署名証明書と秘密鍵を作って,自己署名証明書から証明書署名要求を作成する.証明書署名要求を作成しさえすれば,自己署名証明書はいらないので削除する.(次の画像は,自己署名証明書を作成する部分のキャプチャ.)


生成された証明書署名要求 csr.pem ファイル中の "-----BEGIN CERTIFICATE REQUEST-----" から "-----END CERTIFICATE REQUEST-----" までを RapidSSL で申請する際に使用する.

ということで,この証明書署名要求をコピー&ペーストできるようにしなければならない.そこで, SSH を有効にして,Mac のターミナルからログインすることにした.まず,FreeBSD 側の設定.
# vi /etc/rc.conf
sshd_enable="YES"(この行を追記する.)
# /etc/rc.d/sshd start

Mac のターミナルからの接続.
$ ssh takuya@192.168.1.254

というかんじ.いずれ,SSH の設定などのエントリを書きたいなぁ.ちなみに,無効化する時の手順はこの通り.
# /etc/rc.d/sshd stop
# vi /etc/rc.conf
sshd_enable="NO"(NO に書き換えるか,行を削除する.)

下準備は整ったので,Namecheap での作業に入ろう.


右側の "Login to your account" の "Signup for a Free Account" をクリックし,新規アカウントを作成する.




ヘッダメニューの "SSL Certificate" の "Low Cost SSL Certificate" をクリックする.


"Rapid SSL" の "Add to Cart" をクリックする.


"DURATION" を必要なら変更し,"UPDATE CHANGES" をクリックし,"Standard Checkout" をクリックする.



支払い方法は,適宜選択のこと.入金した資金から支払うか,直接クレジットカードで支払うかを選択できる.今回は,PayPal 経由で支払いたかったので,上の項目を選択した.


入金されてないので,"Add Funds to your account" をクリックして入金する.


入金の詳細は省略.





支払い完了.


黄色い通知メッセージの "SSL Certificate Page" をクリックする.


"Activate Now" をクリックする.


今回のは Web サーバ用じゃないので,"Other" を選択する.Web サーバ用なら,Web サーバ名に合ったものを選択する.そして,さっき作成した証明書署名要求 csr.pem の "-----BEGIN CERTIFICATE REQUEST-----" から "-----END CERTIFICATE REQUEST-----" までを貼り付ける.



"CSR Information" を確認し,"APPROVER EMAIL"(承認用メールアドレス)を選択する.届くメールアドレスであれば,好きなものを選んで OK.


連絡先情報を入力する.


申請完了.メールを待って(30分以内には来たはず.),メールに記述されている URL をクリックする.



「承認します」をクリックして,注文を承認する.


注文完了.メールを待って(1日以内には来たはず.),メールに記述されている "-----BEGIN CERTIFICATE REQUEST-----" から "-----END CERTIFICATE REQUEST-----" までを,cert.pem というファイルに記述して保存する.
# cd /etc/mail/certs
# vi cert.pem

CA のルート証明書を取得し,ハッシュ名のシンボリックリンクを作成する.
# cd /etc/mail/certs
# fetch -o cacert.pem http://www.geotrust.com/resources/root_certificates/certificates/Equifax_Secure_Certificate_Authority.cer
# ln -s cacert.pem `openssl x509 -noout -hash < cacert.pem`.0

最後に,証明書を検証して,証明書が正しいかチェックする.OK なら csr.pem はいらないので,削除する.
# cd /etc/mail/certs
# openssl verify -CAfile cacert.pem cert.pem
# openssl verify -CApath . cert.pem
# rm csr.pem

以上で,格安の SSL 証明書の取得は完了♪メールサーバにこの証明書を使わせることで,警告は表示されなくなるはずだ.

関連サイト:
RapidSSL
Namecheap

参考文献:
sendmailクックブック―設定と運用のためのレシピ集

3 件のコメント:

funi さんのコメント...

拝見させてもらっております。お世話になります。
貴サイトを参考に新規SSLのサーバーへの設置を行って早1年たちます。
もしよろしければ「更新」の仕方をご教示いただけたらとコメントを入れた次第です。
前回と同じように新規でcsrと申し込みをして、文字列をサーバーに貼付けるだけでよいのか、あるいは特別に更新の仕方が別にあるのか、自分なりに調べてみたのですが、業者用のサイトが独自のやり方でしか紹介されておらず途方に暮れています。
もしよろしかったら教えていただけませんか。よろしくお願いいたします。

Takuya Tsuchida さんのコメント...

> funi さん

記事が参考になったようで幸いです。
私自身がいま Namecheap で SSL を管理しておらず、詳細な手順をお伝えすることができません。

私の方でも調べたところ、新規取得した SSL を更新する手順が用意されているので、その手順で実施するのが正攻法のようです。参考にした Namecheap 公式の記事(このコメントの末尾にリンクを貼っています。)によると、ログインして SSL の管理画面から更新 (renew) 作業ができるようです。公式の記事には新規取得と似たプロセスですと説明があります。

また、サーバー側での取得した証明書の更新も似たようなプロセスになります。新しい証明書を同じ手順で配置してください。古い証明書は不要になります。

最近サーバーを管理していないため、曖昧な表現になってしまってすみません。よろしくお願いします。

https://www.namecheap.com/support/knowledgebase/article.aspx/816

funi さんのコメント...

>Takuya Tsuchida 様

早速教えていただき、本当に感謝です。
リンクまで示していただき申し訳ないです。

紹介していただいたやり方で更新にチャレンジしてみます。本当にありがとうございました。