coLinux日記

coLinuxはフリーソフトを種として、よろずのシステムとぞなれりける。

OpenSSLについて その1

2007-02-07 21:52:06 | OpenSSL
久しぶりの投稿です。現在の coLinux の運用状況ですが、
# uptime
 21:21:40 up 20 days, 23:42,  2 users,  load average: 0.00, 0.00, 0.00

20日も動いています。
さて、OpenSSL を試して、apache httpd 2.2.4 の sslサポートを有効にしてみます。coLinux サイトにある Fedora Core 5 では、OpenSSL は最初から含まれています。しかし、CA 構築のシェルスクリプト CA.sh や、OpenSSL の設定ファイルはいったいどこにあるのでしょうか。rpm で探してみます。
# rpm -qa |grep openssl
openssl-0.9.8a-5.4
openssl-devel-0.9.8a-5.4
# rpm -ql openssl-0.9.8a-5.4
/etc/pki/CA
...................
# openssl version
OpenSSL 0.9.8a 11 Oct 2005
#

ということは、OpenSSL のバージョンは 0.9.8a で、CA を作るためのシェルスクリプトは、
/etc/pki/tls/misc/CA

で、openssl の設定ファイルは、
/etc/pki/tls/openssl.cnf

です。早速 mod_ssl 用のキーを作成するのですが、これまた忘れやすいのでまとめておきます。ここでは、自分でCAになることにします。参考にしたものは、
OpenSSLによるCAの運営方法
OpenSSLでの自己認証局(CA)と自己証明書の作成
CAのためのOpenSSLの設定
あたりです。そのほか書ききれないくらい多いですが、OpenSSL のバージョンが影響しますので、自分のバージョンと記述の作成年月日を確認した方が良いと思います。

ところで、自分でCAになる方法が微妙に異なっていることが分かりましたので CA.sh スクリプトを見てみます。まず古い OpenSSL のソースの apps/CA.sh を調べてみたところ、0.9.7 から 0.9.8 になったところで、apps/CA.sh の -newca が変更になっていることが分かりました。CA.sh の -newca) のところを見てみますと、0.9.7e では、
$REQ -new -x509 -keyout ${CATOP}/private/$CAKEY \
     -out ${CATOP}/$CACERT $DAYS

とプライベートキーと一緒に自己証明書も生成するとこになっているのが、0.9.8a では、
$REQ -new -keyout ${CATOP}/private/$CAKEY \
                -out ${CATOP}/$CAREQ
$CA -out ${CATOP}/$CACERT $CADAYS -batch \
                -keyfile ${CATOP}/private/$CAKEY -selfsign \
                -infiles ${CATOP}/$CAREQ

となって、一度プライベートキーと CSR($CAREQ) を生成してから、改めて 0.9.8 から追加された、-selfsign オプションを付けて、-keyfile で指定したキーで署名(つまり自己署名)しているようです。

次に、openssl.cnf の中身を見てみます。これは、

[ セクション名 ]

という行でセクション名を定義して、その下の次のセクション名の行までが有効になるような仕組みです。更にセクションの中で = によって、別のセクションを指定できるようになっているようです。なんとなく sendmail.cf に似ています。

openssl ca の -extensions section オプションを見ると、デフォルトは x509_extensions セクションになるようです。openssl.cnf を探すと、CA_default セクションのところで、
x509_extensions = usr_cert

となっていますから、usr_cert セクションの指定になるわけです。

そこで分からないのは、openssl.cnf の usr_cert セクションや、v3_ca セクション( openssl req の場合に指定される) の中でコメントになっている nsCertType です。どうもNetscape 用で8ビットのビットフラグになっているらしく、順番に、
client, server, email, objsign, reserved, sslCA, emailCA, objCA
を意味するようですが、定義がよく分からないです。server を指定するとか、sslCA,emailCA を指定するとか入り乱れていますが、とりあえずコメントのままにします。

続きは次回にしたいと思います。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ファイルシステムサイズ増設2 | トップ | OpenSSLについて その2 »
最新の画像もっと見る

コメントを投稿

OpenSSL」カテゴリの最新記事