久しぶりの投稿です。現在の coLinux の運用状況ですが、
20日も動いています。
さて、OpenSSL を試して、apache httpd 2.2.4 の sslサポートを有効にしてみます。coLinux サイトにある Fedora Core 5 では、OpenSSL は最初から含まれています。しかし、CA 構築のシェルスクリプト CA.sh や、OpenSSL の設定ファイルはいったいどこにあるのでしょうか。rpm で探してみます。
ということは、OpenSSL のバージョンは 0.9.8a で、CA を作るためのシェルスクリプトは、
で、openssl の設定ファイルは、
です。早速 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 では、
とプライベートキーと一緒に自己証明書も生成するとこになっているのが、0.9.8a では、
となって、一度プライベートキーと CSR($CAREQ) を生成してから、改めて 0.9.8 から追加された、-selfsign オプションを付けて、-keyfile で指定したキーで署名(つまり自己署名)しているようです。
次に、openssl.cnf の中身を見てみます。これは、
[ セクション名 ]
という行でセクション名を定義して、その下の次のセクション名の行までが有効になるような仕組みです。更にセクションの中で = によって、別のセクションを指定できるようになっているようです。なんとなく sendmail.cf に似ています。
openssl ca の -extensions section オプションを見ると、デフォルトは x509_extensions セクションになるようです。openssl.cnf を探すと、CA_default セクションのところで、
となっていますから、usr_cert セクションの指定になるわけです。
そこで分からないのは、openssl.cnf の usr_cert セクションや、v3_ca セクション( openssl req の場合に指定される) の中でコメントになっている nsCertType です。どうもNetscape 用で8ビットのビットフラグになっているらしく、順番に、
client, server, email, objsign, reserved, sslCA, emailCA, objCA
を意味するようですが、定義がよく分からないです。server を指定するとか、sslCA,emailCA を指定するとか入り乱れていますが、とりあえずコメントのままにします。
続きは次回にしたいと思います。
# 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 を指定するとか入り乱れていますが、とりあえずコメントのままにします。
続きは次回にしたいと思います。
※コメント投稿者のブログIDはブログ作成者のみに通知されます