RapidSSL証明書購入からApache / Postfix / Dovecotでの設定まで

HTTPS / SMTP over SSL/TLS (SMTPS) / IMAP over SSL/TLS (IMAPS) / POP over SSL/TLS (POPS) を使用するには署名つきSSL証明書が必要だ。利用者が限られたサービスでは自己署名した、いわゆるオレオレ証明書でSSLを実現することも不可能ではないが、ボクは年間10.95ドル(1,115円)でRapidSSLを利用している。

RapidSSLはGeoTrustの最安ブランドで、GeoTrustはSymantec(旧VeriSign)グループのひとつである。メール一通だけの確認なので手軽な一方、信用度はそれほど高くはないが、どこが発行しているかどうかを気にしてSSL通信しているユーザーはほとんどいないので、EV証明書(Webブラウザーのアドレス・バーに所有者名が出るやつ)ほどはいらないのであれば、悪くない選択だろう。

RapidSSLのルート証明書は2010年10月10日以降 GeoTrust Global CA だが、それ以前と同様に Equifax Secure Certificate Authority をルート証明書にするクロス・ルート設定をすることもできる。携帯電話も最近の機種であればこの2つのどちらにも対応しているが、一部のAndroidがなにげに GeoTrust Global CA に対応していないので、Equifax Secure Certificate Authority をルート証明書にしたほうが良いだろう。会社から支給されている DOCOMO LG Optimus chat L-04C は Android 2.2.2 にも関わらず、CACertManで確認したところ GeoTrust Global CA には対応していなかった。Apple iPhoneApple: iOS 3.x: 信用できるルート証明書の一覧 によると、少なくとも iOS 3 からはどちらの証明書にも対応している。

RapidSSLは直販だと1年契約で49ドル(4988円)だが代理店経由だともっと安く、ボクはNamecheap.comで1年契約10.95ドル(1,115円)で購入した。上部メニューから Security > SSL Certificates を選び、真ん中ら辺から Brand > GeoTrust を選び、RapidSSLを Add to Cart すればよい。

Namecheap: RapidSSL

購入が完了したら秘密鍵と署名要求 (CSR) を作成しよう。以下は RapidSSL: Generate CSR for Apache-SSL をベースに Scientific Linux (SL) 6.2 を使用して作成しているが、Red Hat Enterprise Linux (RHEL) / CentOS / Oracle Linux でも同様だろう。

RapidSSL指定の方法や /etc/pki/tls/certs/Makefile を使った方法で秘密鍵を作成すると、鍵を使用するたびにパスワード入力が必要になり、SSLを使用する Apache HTTP Server などを起動するたびにパスワード入力が必要になってしまうため、以下のような方法でパスワードなしの秘密鍵を作成する。2048ビットの鍵が必要なので、2048を必ずつけよう。

つづいてCSR(Certificate Signing Request。証明書署名リクエスト)を作成する。Common Name はSSLでアクセスするときのサーバー名と一致しなければならない。つまり、Webならwww.rewse.jp、メールならmail.rewse.jpなどだ。rewse.jpのようにWebもメールも同一マシンで、サブドメインを使用せずにアクセスする場合は、1つの証明書で両方に使える。Email Address / A challenge password / An optional company name は空白のままにしよう。

@namecheap.comから Namecheap.com Order Summary というメールが届いているはずなので、そのメールにある SSL listing page から Activate Now をクリックし、Select web server を Apache + OpenSSL にして、Enter csr に先ほど作ったCSRをコピペする。

Namecheap: Certificate Sigining Request

承認者のメールアドレスを選択する。ボクの環境ではpostmasterはrootのエイリアスとして指定されているので、こちらを選択した。事前に手元のメーラーから送信して、ちゃんと受信できるか試しておくと良いだろう。

Namecheap: Approver Email

指定したアドレスに@geotrust.comから RapidSSL Certificate Request Confirmation というメールが届く。記載のURLをクリックすると以下のような画面になり、「I Approve」をクリックすると署名つき証明書が発行される。

RapidSSL: Order Review and Approval

再び@geotrust.comから Subject: rewse.jp RapidSSL Order: 9999999 Complete というメールが届き、Web Server CERTIFICATE というところに自分のドメイン名の署名つきSSL証明書が載っている。-----BEGIN CERTIFICATE-----から-----END CERTIFICATE-----を含めて /etc/pki/tls/certs/rewse.jp.2014.crt にコピペし、有効期限を見てみよう。Validity Not After というのがこの証明書の有効期限だ。

Apache 2.2 でSSLを設定する方法は RapidSSL: Install certificate in Apache に載っている。Subject: rewse.jp RapidSSL Order: 9999999 Complete メールに載っている INTERMEDIATE CA(中間認証局)は ルート証明書が GeoTrust Global CA だけのもののため、GeoTrust Global CA → RapidSSL CA → rewse.jpというツリーになるが、RapidSSL Intermediate CAs に載っている Bundled CA Version を使うと、Equifax Secure Certificate Authority → GeoTrust Global CA → RapidSSL CA → rewse.jpというツリーになる。先述のとおり、Android対策で Bundled CA Version からコピペして /etc/pki/tls/certs/ca-rapidssl.2014.crt とするのがオススメだ。

ここまでで作成した秘密鍵 / 署名つき証明書 / 中間CA証明書を設定する。

Apacheを再起動したら、RapidSSL Certificate Installation Checker でSuccessfulが出ることを確認しよう。また、Google Chrome for Mac でURLの左にある鍵アイコンをクリックし、接続 → 証明書情報を選ぶと以下のようなツリーを見ることができる。Internet Explorer / Mozilla Firefox / Google Chrome for Windows / Apple Safari では正しくクロス・ルートに設定していても GeoTrust Global CA がルート証明書に見えてしまうので注意しよう。

rewse.jpの証明書ツリー

Postfix 2.3.3/2.6.6 で SMTP over SSL/TLS (SMTPS) を行う場合は中間CA証明書を含めた署名つき証明書を作成する必要がある。

同様にDovecotで IMAP over SSL/TLS (IMAPS) / POP over SSL/TLS (POPS) を行う場合は、この中間CA証明書を含めた署名つき証明書を指定する。以下は Dovecot 2.0.9 での設定方法だ。<を忘れずに。

以下は Dovecot 1.0.7 での設定方法だ。こちらは<が必要ない。

2012年3月21日 初版公開
2014年5月15日 第2版公開

7 thoughts on “RapidSSL証明書購入からApache / Postfix / Dovecotでの設定まで”

  1. お世話になります。貴サイトの通りにnamecheapでの証明書購入とapacheへの設定ができて正常に外からもhttpsでwebが表示されるようになり本当に感謝しております。ありがとうございます。

    ご迷惑でなければ、ひとつご教授願いたいことがあり、このようにメールした次第です。突然のメールで申し訳ありません。

    当方、諸事情あってサーバー機の故障で、リプレイスをすることになり、幸いバックアップが取れる状態でしたので、証明書crtファイルと秘密鍵keyファイルとca-rapidssl.2013.crtファイルの3つを取っておきました。

    ネットで自分なりに調べたところ、上記ファイルのバックアップを取っていれば、新しい環境にしたとしても、以前の状態に戻せるとどこかの記事で読んだからです。

    そこで散々調べた挙げ句、上記ファイルをインポートすればよいと色々なサイトで説明がされていましたが、この「インポート」とは、具体的に何をさすのか、結局分からず終いでした。

    例えば、証明書なら/etc/pki/tls/certs/の下に、FTPとかで取っておいたmydom.2013.crtを「ただ単に配置する」鍵ファイルなら/etc/pki/tls/private/の下にただ単に配置するという解釈であっていますか?

    結局、OSのインストールからやらなくてはならないのですが、apacheとsslのインストールや設定の後に、
    貴サイトにあるopenssl genrsa 2048 > /etc/pki/tls/private/rewse.jp.2012.keyで、新規に鍵ファイルを作成したりとかはせずとも、「いきなりkeyファイルをそのパスに置く」だけでOKなのでしょうか? また、crtファイルとca-rapidssl.2013.crtファイルも同様に、そのパスに置けてさえいれば、万事OKということなのでしょうか?

    不躾な質問で恐縮です。ドメイン名もコモンネームもIPアドレスも何も変わっておりません。ただ単に以前と同様な環境を作りたいだけです。

    もし、(このようなケースでのインポートの意味)をご存知でしたらご教授願えませんでしょうか。よろしくお願いいたします。

    1. 記事がお役に立ったようで何よりです。

      さて、リプレイススに伴う復旧方法ですが、「ただ単に配置する」で問題ありません。逆に、新規に鍵ファイルを作成してしまうと、それに合う証明書を再度RapidSSLから購入し直しになってしまいます。「いきなりkeyファイルをそのパスに置く」で問題ありません。

      先月に私も3個のファイルを「ただ単に配置する」でOS再インストールを実施しました。他サイトがなぜこれを「インポートする」と表現しているのかは、ちょっと分かりません。

  2. ご教授いただき誠にありがとうございます。

    「インポート」という言葉に、何やら惑わされてたようで、二の足を踏んでいました。本当にありがとうございますm(_ _)m

    何かしらopensslのコマンドや、あるいはwebでのI/Fを通して配置しなければならないのではないかと、勝手にそう思い込んでいました。ところが、そのやり方が調べても結局分からず、貴サイトに泣きついたという次第です。

    ※ベリサインや他のssl代理店のFAQを読んでみても、概ね、エクスポートの方法は詳細に述べられていて、インポートの方法に関してはベンダーに問い合わせ下さいだとか、サーバーウェアの仕様に依るのでそちらで、、、みたいな表現にとどまる感じでした。ですので、貴殿のブログのような記事は本当に助かります。感謝です。

    単純に置くだけでよいと知り安心しました。(逆に、単純に置くだけだからこそ、他のサイトでも詳細説明をはしょっているのかも知れませんね)

    FTP等で配置するだけで要はインポートがなされた、と見てOKということで、これからの作業、安心して臨めます。重ね重ね、本当にありがとうございます。

  3. お世話になります。またひとつご教授願いたくコメントさせていただきました。突然の書き込みをお許し下さい。

    以前、リプレイスの件でご教授賜り無事運営できているのですが、それとは別件で、mail.mydom.comといったように、別マシンとしてメールサーバーだけ別で立てることになりました。(ちなみにそのメールサーバーはオープンソースのものでvmware社のzimbraというメールサーバー兼グループウェアのようなもので、webのI/Fもあります)

    そこで、貴サイトで勉強させてもらった通りに、新たにNameCeapにて、コモンネームmail.mydom.comのSSL証明書を購入するところまで行きました。

    zimbraの管理I/Fの画面からCSRを作成し、そのCSRの中の文字列を基に証明書の発行までいったのですが、その次の手順で詰まってしまいました。

    zimbraの管理画面から証明書等のアップロードを行う局面があるのですが、以下の3種類のテキストファイルをアップロードするよう促される場面があります。

    1)証明書   「ファイルを選択してアップロード」ボタン
    2)ルート認証局  「ファイルを選択してアップロード」ボタン
    3)中間認証局   「ファイルを選択してアップロード」ボタン

    そこで、こちらのサイトのandroid対策としてのクロスルートのリンクから得られるintermediate_fileなのですが、この内容をそっくりそのままコピペし、貴サイトの通りに、仮にca-rapidssl.2012.crtというファイルを、仮にローカルに作成した場合。。。なのですが、この場合、(2)のルート認証局のところにアップロードすべきなのか、あるいは(3)の中間認証局のところにアップロードすべきなのか、ちょっと分からずに迷っています。

    また、(2)か(3)のどちらか一方は、空欄(=アップロードしない)のままで果たしてよいものかどうかも分からずに躊躇しています。

    もしご迷惑でなければ、ヒントを教えていただけませんか。お忙しいところ恐縮ですが、よろしくお願い申し上げます。

  4. Zimbraを構築したことがないのではっきりしたことは分かりませんが、ルート証明書がサーバー側に必要ということ自体がちょっとよく分かっていません。 https://www.geotrust.co.jp/support/ssl/faq/900011/ にあるとおり、ルート証明書はクライアント側にあるべきものです。ZimbraのWebメーラー用のルート証明書なんですかね。

    とりあえず、Equifax Secure Certificate Authority のルート証明書は https://www.geotrust.com/resources/root-certificates/ からダウンロードできますので、これをルート認証局に設定すれば良い気がします。Zimbraが Equifax Secure Certificate Authority をデフォルトで内蔵していれば、空欄でも良いかもしれません。intermediate_fileは中間認証局に指定すべきでしょう。

    これでダメならば、私よりもZimbraコミュニティで質問したほうが適切な回答が得られると思います。

  5. 管理人様、いつも教えていただき本当にありがとうございます。

    管理人様の仰る通り、intermediate_fileを中間認証局に、また教えていただいたリンクからDLしたEquifaxのpemファイルをルート認証局に、そして証明書そのものはgeotrustからのメールに記載のWeb Server CERTIFICATE以下の文字列をコピペして作成した.crtファイルを、それぞれ3箇所に指定してアップロードしたところ、うまく証明書関連を問題なくアップロードできまして、動作の確認も取れました。Geotrust Certificate Installation Checkerでもきちんと確認が取れました。

    いつも親切にご教授賜り、本当に感謝です。ありがとうございます。

    本質的な理解を怠って、いきなり答えを教えていただいたような恰好になってしまいました。反省して、これから精進しますm(_ _)m

    また、迷惑メール関連でつまづいていたこともあり、貴サイトの記事 http://rewse.jp/blog/p/5912 の特にSPF宣言の情報もとても勉強になりました。

    今回は、本来ならzimbraコミュニティに聞くべき内容だったのですが、先に管理人様を頼ってしまい申し訳ございません。

    なんとお礼を言ったらよいか、重ね重ね、本当にありがとうございました。

コメントを残す