aboutsummaryrefslogtreecommitdiffstats
path: root/doc-jp
diff options
context:
space:
mode:
Diffstat (limited to 'doc-jp')
-rw-r--r--doc-jp/README.SSL61
1 files changed, 60 insertions, 1 deletions
diff --git a/doc-jp/README.SSL b/doc-jp/README.SSL
index f4dd5b6..f3ce85a 100644
--- a/doc-jp/README.SSL
+++ b/doc-jp/README.SSL
@@ -2,6 +2,8 @@ SSL サポートについて
(2000/11/07) 岡部克也
okabek@guitar.ocn.ne.jp
+ (2001/12/27) 鵜飼文敏
+ ukai@debian.or.jp
・ SSLeay/OpenSSL ライブラリを通じて, SSL をサポートしています.
あらかじめインストールしておいてください.
@@ -37,10 +39,67 @@ SSL サポートについて
また実際に認証を行う場合, ssl_ca_pathまたはssl_ca_fileで, サーバの鍵に
署名している認証局の証明書を (ssl_verify_serverのON/OFFに関係無く) 指定
- しないと認証が成功しないようです.
+ しないとサーバ認証は成功しません。
+
+ 通常使われている認証局の証明書は以下のところなどから入手できます。
+
+ * mozillaのソースに含まれている
+ mozilla/security/nss/lib/ckfw/builtins/certdata.txt
+ から添付の ruby script で *.pemファイルとしてとりだしたもの
+
+ % ruby certdata2pem.rb < certdata.txt
+
+ でカレントディレクトリに *.pemファイルをとりだし
+ opensslの c_rehash コマンドで hash symlink を作成します。
+ このディレクトリを ssl_ca_path に設定することができます。
+ もしくは、*.pem をまとめた一つのファイルを作成しておけば
+ それを ssl_ca_file に設定することができます。
+
+ * mod_sslのソースに含まれている pkg.sslcfg/ca-bundle.crt
+ これは PEMなので、このファイルのフルパス名を ssl_ca_file に
+ 設定することができます。
・ バージョン 0.9.5 以降の OpenSSL ライブラリは, 乱数を初期化するために幾つか
のシードを設定する必要があります.
デフォルトでは /dev/urandom があればそれを利用しますが, 無ければ w3m 内部
で生成します. もし, EGD (Entropy Gathering Daemon) が利用できる環境でこれ
を使いたい場合は, USE_EGD マクロをチェックしてみてください.
+
+----------------------------------------------------------------
+#!/usr/bin/ruby
+# Copyright (c) 2001 Fumitoshi UKAI <ukai@debian.or.jp>
+# All rights reserved.
+# This is free software with ABSOLUTELY NO WARRANTY.
+#
+# You can redistribute it and/or modify it under the terms of
+# the Ruby's licence.
+#
+# certdata2pem.rb
+
+while line = $stdin.gets
+ next if line =~ /^#/
+ next if line =~ /^\s*$/
+ line.chomp!
+ if line =~ /CKA_LABEL/
+ label,type,val = line.split(' ',3)
+ val.sub!(/^"/, "")
+ val.sub!(/"$/, "")
+ fname = val.gsub(/\//,"_").gsub(/\s+/, "_").gsub(/[()]/, "=") + ".pem"
+ next
+ end
+ if line =~ /CKA_VALUE MULTILINE_OCTAL/
+ data=''
+ while line = $stdin.gets
+ break if /^END/
+ line.chomp!
+ line.gsub(/\\([0-3][0-7][0-7])/) { data += $1.oct.chr }
+ end
+ open(fname, "w") do |fp|
+ fp.puts "-----BEGIN CERTIFICATE-----"
+ fp.puts [data].pack("m*")
+ fp.puts "-----END CERTIFICATE-----"
+ end
+ puts "Created #{fname}"
+ end
+end
+system("c_rehash", ".")