2008年7月19日土曜日

OpenSSLでお手軽に自己証明書(1)_make一発

SSLでの通信に使う秘密鍵とサーバ証明書のセット、
自己署名でよければ近頃のOpenSSLでは非常に楽に作れます。
 
最近私が証明書セットを使っただけでも数々のアプリケーションが…

  • apache(httpd)でHTTPからHTTPS

  • postfixでSMTPからSMTPS

  • dovecotでPOP3からPOP3S、IMAPからIMAPS

  • OpenLDAPでLDAPからLDAPS

  • stunnelで色々SSL化


 
ぱっと思い出すだけでも色々と出てくる、ということで今のところ最短の手順を残しておきます。
 
note:
ここで作成するのは俗にオレオレ証明書⇒はてなキーワード:オレオレ証明書と呼ばれるものです。
詳しくはリンク先を参照として、区分で言うと第一種オレオレ証明書ですね。

 
さて、OpenSSL近頃のバージョンといえば執筆時点では0.9.8~ですが、
新しめのものがインストールされているなら下記どっちかのディレクトリがあるはずです。
/etc/pki/tls/certs
/usr/share/ssl/certs

上はCentOS4,下はCentOS5で確認しました。無ければ手動でやります、詳しくは別記事で。
 
上記ディレクトリに cd して内容を参照したら、Makefileがありますか?
あれば下記のコマンド1発でキーペアの完成です。
make [任意のファイル名].pem

上記実行したらサーバ証明書に記載される内容を問われるので、
適宜入力しましょう。
 
斜体はサーバからの問い合わせ、太字が入力例なのでコモンネームに注意して各自適当に。
実際はもう少し続きますが、これ以降は全部空白でエンター押してかまいません。
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Hyogo
Locality Name (eg, city) [Newbury]:Kobe-shi
Organization Name (eg, company) [My Company Ltd]:iCRAFT Ltd.
Organizational Unit Name (eg, section) []: (部署名、無記入でもOK)
Common Name (eg, your name or your server's hostname) []:hogehoge.example.com
(コモンネーム、SSL証明書を適用するサーバのFQDNを書きましょう)
Email Address []:(省略可)

以上でキーペアが完成します。ファイル名は[任意のファイル名].pem
 
出来上がったファイルを覗いてみると、秘密鍵とサーバ証明書がそれぞれセクションが分かれた形で記述されています。
SSLを使うサーバアプリケーションのコンフィグで秘密鍵・証明書の指定する箇所では、両方同じファイルでOKです。
 
また、別々のファイルにしたい場合は、セクションが分かれたテキストをそのままコピー&ペーストで分割可能です。
ちゃんとできてるかの確認方法は、両方から生成できる公開鍵が一緒なら問題なし、
詳しくは別記事のSSL用秘密鍵と証明書がペアかどうか確かめるで。
 
 
ちなみに、WindowsServerでもIISリソースキットのselfssl.exeでこれまた楽に自己証明書の適用が可能です。

IIS 6.0 Resource Kit Tools について
http://support.microsoft.com/kb/840671/ja


使い方はまた別に記事にするかも知れないけど、特に注意する箇所もないのでどうしましょうか。