JRuby Net :: HTTP因OpenSSL :: SSL :: SSLError而失败:证书不符合算法约束

时间:2012-07-09 05:21:49

标签: java https jruby

Jruby jruby-1.7.0.preview1 JDK:Java(TM)SE运行时环境(版本1.7.0_05-b05)

我是通过HTTPS从REST网络服务获取数据的,现在已经很好了。

我在周末升级到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

有关

1 个答案:

答案 0 :(得分: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