w3m

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/w3m.git/
Log | Files | Refs | README

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", ".")