README.SSL (4409B)
1 SSL サポートについて 2 3 (2000/11/07) 岡部克也 4 okabek@guitar.ocn.ne.jp 5 (2001/12/27) 鵜飼文敏 6 ukai@debian.or.jp 7 8 ・ OpenSSL ライブラリを通じて, SSL をサポートしています. 9 あらかじめインストールしておいてください. 10 11 ・ OpenSSL ライブラリがインストールされていれば configure スクリプト実行時に自 12 動的に検出されて利用可能となります. 13 もしうまく動かないときは, config.h をチェックしてみてください. SSL を利用す 14 るためには, config.h で, USE_SSL マクロが定義されている必要があります. 15 さらに, SSL 認証サポートを利用する場合は, USE_SSL_VERIFY マクロもチェックし 16 てみてください. 17 コンパイルでエラーが出る場合は, リンカフラグに `-lssl -lcrypto', コンパイラ 18 フラグに '-I(SSLeay/OpenSSL のヘッダがあるディレクトリ)' があるか確認してく 19 ださい. 20 21 SSL サポートが有効になっているかどうかは, Option Setting Panel に「SSLの設 22 定」が含まれているかどうかで確認できます. 23 24 ・ SSL に関して以下の設定が可能になってます: 25 26 ssl_forbid_method 27 使わないSSLメソッドのリスト(2: SSLv2, 3: SSLv3, t: TLSv1) 28 (デフォルトは<NULL>). 29 ssl_verify_server ON/OFF 30 SSLのサーバ認証を行う(デフォルトはOFF). 31 ssl_cert_file ファイル名 32 SSLのクライアント用PEM形式証明書ファイル(デフォルトは<NULL>). 33 ssl_key_file ファイル名 34 SSLのクライアント用PEM形式秘密鍵ファイル(デフォルトは<NULL>). 35 ssl_ca_path ディレクトリ名 36 SSLの認証局のPEM形式証明書群のあるディレクトリへのパス 37 (デフォルトは<NULL>). 38 ssl_ca_file ファイル名 39 SSLの認証局のPEM形式証明書群のファイル(デフォルトは<NULL>). 40 ただし「SSLEAY_VERSION_NUMBER >= 0x0800」な環境でないと無駄なコードが増 41 えるだけなので, configure時にdisableしておいたほうがよいでしょう. 42 43 また実際に認証を行う場合, ssl_ca_pathまたはssl_ca_fileで, サーバの鍵に 44 署名している認証局の証明書を (ssl_verify_serverのON/OFFに関係無く) 指定 45 しないとサーバ認証は成功しません。 46 47 通常使われている認証局の証明書は以下のところなどから入手できます。 48 49 * mozillaのソースに含まれている 50 mozilla/security/nss/lib/ckfw/builtins/certdata.txt 51 から添付の ruby script で *.pemファイルとしてとりだしたもの 52 53 % ruby certdata2pem.rb < certdata.txt 54 55 でカレントディレクトリに *.pemファイルをとりだし 56 opensslの c_rehash コマンドで hash symlink を作成します。 57 このディレクトリを ssl_ca_path に設定することができます。 58 もしくは、*.pem をまとめた一つのファイルを作成しておけば 59 それを ssl_ca_file に設定することができます。 60 61 * mod_sslのソースに含まれている pkg.sslcfg/ca-bundle.crt 62 これは PEMなので、このファイルのフルパス名を ssl_ca_file に 63 設定することができます。 64 65 ・ バージョン 0.9.5 以降の OpenSSL ライブラリは, 乱数を初期化するために幾つか 66 のシードを設定する必要があります. 67 デフォルトでは /dev/urandom があればそれを利用しますが, 無ければ w3m 内部 68 で生成します. もし, EGD (Entropy Gathering Daemon) または PRNGD (Pseudo 69 Random Number Generator Daemon) が利用できる環境でこれを使いたい場合は, 70 USE_EGD マクロをチェックしてみてください. 71 72 ・ URL 73 74 OpenSSL - http://www.openssl.org/ 75 PRNGD - http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/prngd.html 76 77 ---------------------------------------------------------------- 78 #!/usr/bin/ruby 79 # Copyright (c) 2001 Fumitoshi UKAI <ukai@debian.or.jp> 80 # All rights reserved. 81 # This is free software with ABSOLUTELY NO WARRANTY. 82 # 83 # You can redistribute it and/or modify it under the terms of 84 # the Ruby's licence. 85 # 86 # certdata2pem.rb 87 88 while line = $stdin.gets 89 next if line =~ /^#/ 90 next if line =~ /^\s*$/ 91 line.chomp! 92 if line =~ /CKA_LABEL/ 93 label,type,val = line.split(' ',3) 94 val.sub!(/^"/, "") 95 val.sub!(/"$/, "") 96 fname = val.gsub(/\//,"_").gsub(/\s+/, "_").gsub(/[()]/, "=") + ".pem" 97 next 98 end 99 if line =~ /CKA_VALUE MULTILINE_OCTAL/ 100 data='' 101 while line = $stdin.gets 102 break if /^END/ 103 line.chomp! 104 line.gsub(/\\([0-3][0-7][0-7])/) { data += $1.oct.chr } 105 end 106 open(fname, "w") do |fp| 107 fp.puts "-----BEGIN CERTIFICATE-----" 108 fp.puts [data].pack("m*") 109 fp.puts "-----END CERTIFICATE-----" 110 end 111 puts "Created #{fname}" 112 end 113 end 114 system("c_rehash", ".")