From: Kazuhiro NISHIYAMA Date: 2005-12-26T16:32:26+09:00 Subject: [ruby-dev:28125] Re: post_connection_check with javacc.dev.java.net 西山和広です。 >>>>> On Mon, 26 Dec 2005 12:02:31 +0900 >>>>> tietew-ml-ruby-dev@tietew.net(Tietew) said: > > > ふと、https://javacc.dev.java.net/ を open-uri でアクセスすると、 > > post_connection_check でエラーになりました。 > (snip) > > Firefox でアクセスしても警告は出ないし鍵のマークも出るのです > > が、これってどうしてエラーになるんでしょう? > > 証明書を見ると CN = *.dev.java.net. ですね(ワイルドカードCN) > ワイルドカードに対応していないのかな。 少し上の/\ADNS:(.*)/ =~ general_nameのところでやっているのと 同じようなことをoid == "CN"のところでもやってみると、 "hostname not match"にならなくなるようです。 Index: ext/openssl/lib/openssl/ssl.rb =================================================================== RCS file: /src/ruby/ext/openssl/lib/openssl/ssl.rb,v retrieving revision 1.11 diff -u -p -r1.11 ssl.rb --- ext/openssl/lib/openssl/ssl.rb 22 May 2005 10:18:41 -0000 1.11 +++ ext/openssl/lib/openssl/ssl.rb 26 Dec 2005 07:28:27 -0000 @@ -82,8 +82,9 @@ module OpenSSL } if check_common_name cert.subject.to_a.each{|oid, value| - if oid == "CN" && value.casecmp(hostname) == 0 - return true + if oid == "CN" + reg = Regexp.escape(value).gsub(/\\\*/, "[^.]+") + return true if /\A#{reg}\z/i =~ hostname end } end -- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA)