[#25636] [Oniguruma 3.X] reggnu.c — "K.Kosako" <sndgk393@...>

さっき気がついたのですが、元々は

15 messages 2005/02/05

[#25655] openssl binding for SSL_CTX_set_default_verify_paths and X509_STORE_set_default_paths — Tanaka Akira <akr@...17n.org>

open-uri で https を扱うことを考えていろいろと調べていた所、openssl で、

9 messages 2005/02/08
[#25670] Re: openssl binding for SSL_CTX_set_default_verify_paths and X509_STORE_set_default_paths — GOTOU Yuuzou <gotoyuzo@...> 2005/02/10

In message <876513vce0.fsf@serein.a02.aist.go.jp>,

[#25713] pthread trouble on sighandler — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

17 messages 2005/02/18
[#25714] Re: pthread trouble on sighandler — Yukihiro Matsumoto <matz@...> 2005/02/18

まつもと ゆきひろです

[#25755] I/O operation differs signal handler — Minero Aoki <aamine@...>

青木です。

14 messages 2005/02/24
[#25756] Re: I/O operation differs signal handler — Tanaka Akira <akr@...17n.org> 2005/02/24

In article <20050224091450P.aamine@loveruby.net>,

[ruby-dev:25670] Re: openssl binding for SSL_CTX_set_default_verify_paths and X509_STORE_set_default_paths

From: GOTOU Yuuzou <gotoyuzo@...>
Date: 2005-02-10 20:38:30 UTC
List: ruby-dev #25670
In message <876513vce0.fsf@serein.a02.aist.go.jp>,
 `Tanaka Akira <akr@m17n.org>' wrote:
> open-uri で https を扱うことを考えていろいろと調べていた所、openssl で、
> SSL_CTX_set_default_verify_paths および
> X509_STORE_set_default_paths
> が Ruby レベルに提供されていないことに気がつきました。
> 
> これらが提供されていないのは意図されているのでしょうか?

SSL_CTX_set_default_verify_pathsはOpenSSL::SSL::SSLContextの
構造の都合で提供していません。この関数は、例えば次のように用
いられます。

 if (!SSL_CTX_load_verify_locations(ctx,CAfile,CApath)){
   if (!SSL_CTX_set_default_verify_paths(ctx)){
     /* error */
   }
 }

(すでにご存知だと思いますが)OpenSSL::SSL::SSLContextにパラメー
タを設定する各メソッドは、直接にはSSL_CTX構造体に反映せずに
インスタンス変数だけをセットします。実際に反映されるのは
SSLSocketが開始される時なので、対応するコードを次のように書
くことができません。

  ctx = OpenSSL::SSL::SSLContext.new
  begin
    ctx.ca_file = "/path/cacert.crt"
    ctx.ca_path = "/path/cacerts"
  rescue
    # SSL_CTX_load_verify_locationsに対応するメソッド
  end

これをできるようにするにはext/openssl/ossl_ssl.cの大部分を書
き直す必要があって、すぐには対応できそうにありません。

一方、X509_STORE_set_default_pathsは抜けているだけなので、
OpenSSL::X509::Store#set_default_pathsを追加します。
証明書検証まわりのパラメータはOpenSSL::X509::Storeにセットし
て、OpenSSL::SSL::SSLContext#cert_store=で渡せば
SSL_CTX_set_default_verify_pathsを呼んだのと同様に動くと思い
ます。

ところで、verify_modeのデフォルトはOpenSSLライブラリに任せて
いるのですが、net/httpsではSSL_VERIFY_PEERをデフォルトにすべ
きだったと考えるようになりました。せめてopen-uriではそうして
はどうでしょうか。

-- 
ごとうゆうぞう

In This Thread