4

Jruby jruby-1.7.0.preview1 JDK:Java(TM) SE Runtime Environment (build 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 回答