4

Jruby jruby-1.7.0.preview1 JDK: Java(TM) SE ランタイム環境 (ビルド 1.7.0_05-b05)

HTTPS 経由で REST Web サービスからデータを取得していますが、何日も問題なく動作しています。

週末に Ubuntu 12.04 (11.10 から) にアップグレードしましたが、今は失敗しています。その間にJVMで何かが変わったとしか思えません。以前は Java 7 を使用していると思っていたので、非常に混乱しています。

いずれにせよ、失敗するコードは次のNet::HTTP.start部分です。

require "net/http"

Net::HTTP.start(uri.host, :use_ssl => true, :ca_path => "/etc/ssl/certs") do |http|
  #...
end

エラーは次のとおりです。

OpenSSL::SSL::SSLError: Certificates does not conform to algorithm constraints
    from org/jruby/ext/openssl/SSLSocket.java:180:in `connect'
    from /opt/jruby/active/lib/ruby/1.9/net/http.rb:799:in `connect'
    from org/jruby/ext/timeout/Timeout.java:103:in `timeout'
    from /opt/jruby/active/lib/ruby/1.9/net/http.rb:799:in `connect'
    from /opt/jruby/active/lib/ruby/1.9/net/http.rb:755:in `do_start'
    from /opt/jruby/active/lib/ruby/1.9/net/http.rb:744:in `start'
    from /opt/jruby/active/lib/ruby/1.9/net/http.rb:557:in `start'

どんな助けでも大歓迎です。

編集:

これを Java 6 でテストしたところ、問題なく動作しました。

それが関係しているかどうか疑問に思っています: https://forums.oracle.com/forums/thread.jspa?threadID=2405379

4

1 に答える 1

2

ここで概説されている解決策を見つけました: http://sim.ivi.co/2011/07/java-se-7-release-security-enhancements.html

短いバージョン: java_home/jre/lib/security/java.security に移動し、変更します

jdk.certpath.disabledAlgorithms=MD2

jdk.certpath.disabledAlgorithms=

ただし、これにより安全ではないことが証明されている MD2 ハッシュが再度有効になることに注意してください。

参照: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2409

于 2012-07-09T22:01:50.753 に答える