無料なのに正式なSSLサーバ証明書を導入してみた

無料なのに正式なSSLサーバ証明書を導入してみた

2013年1月26日 オフ 投稿者: ぱる☆ミ

事の発端は2012年12月下旬から、Gmailが外部POPサーバとのSSL接続に「オレオレ証明書」を認めなくなったことから始まります

 

gmailerror

Gmailのヘルプページにも以下のように明記されています

What are the SSL certificate authority requirements?

We do not accept self-signed certificates. For a certificate to be valid it needs to chain up to a valid CA, like one in the Mozilla CA list.

こうなったら安いSSL証明書を年間3,000円ぐらいで買ってみるかなぁ・・・と調べていたら、無料で1年間使えるSSL証明書を発行しているCAがありました!

startssl.comという認証局です。無料だけれど全て英語なので、そこは気合いで読み解いていってください(^^;

ちなみにアカウント発行時に住所を入力する必要があるけれども、無料で海外だからって適当な住所を入れて申請すると人間による確認が入りますよw

 

無事にアカウントが払い出されたら、コントロールパネルで秘密鍵の作成から証明書の発行まで即座に行えます

動作確認を兼ねて、まずはApacheのSSL設定を行います。実際の設定は腐るほどThe internetに情報が転がっているのでググってみてください

startssl.com発行の証明書は中間証明書が必要になるので、そこだけ注意すれば簡単です。

ウイザードで秘密鍵と証明書を作成出来るので、それに加えてCA証明書と中間証明書を入れるだけ。

   SSLCertificateFile /usr/local/apache/conf/ssl.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key
SSLCertificateChainFile /usr/local/apache/conf/sub.class1.server.ca.pem
SSLCACertificateFile /usr/local/apache/conf/ca.pem

ね、簡単でしょ。

ちなみに作成したばかりの秘密鍵には当然パスフレーズでロックがかかっているので、パスフレーズを外した鍵も作成しておくと実運用上では楽です。その分セキュリティレベルは下がるけど、トレードオフで。

作成方法はコマンド一発

openssl rsa < ssl.key > ssl.nopass.key

そしてPOP over SSLの設定。うちはDovecotを使っているので、そちらの設定を書いていきます

/etc/dovecot/conf.d/10-ssl.conf の設定ですが、中間証明書のいらないCAから払い出していれば簡単

ssl_cert = </usr/local/apache/conf/ssl.crt

ssl_key = </usr/local/apache/conf/ssl.key

たったこれだけ。

startssl.comのように中間証明書が必要なCAの場合はちょっとだけ工夫が必要です

cp ssl.crt ssl4mail.crt

cat sub.class1.server.ca.pem >> ssl4mail.crt

このように、中間証明書を自分の証明書に結合しておく必要があります。この例だとssl4mail.crtで設定すればOK

 

これで完成!

gmailからもちゃんとPOP over SSLでメールを採ってきてもらえるようになりました

意外と便利なので来年はどこかでSSL証明書を購入しても良いかも