【问题标题】:JRuby with Java7 screws up HTTPS data via proxy带有 Java7 的 JRuby 通过代理破坏了 HTTPS 数据
【发布时间】:2013-01-17 16:39:46
【问题描述】:

我正在尝试在我们的 jruby (1.6.8/1.7.2) rails (3.2.11) 项目中使用库 restclient (1.6.7) 和 jrubyopenssl (0.7.3)。它曾经在 Java 6 上工作得非常好。现在,当我更新到 Java 7 时,它停止工作了。我发现,需要满足所有这些条件才能重现错误:

  • POST 数据
  • 通过 HTTPS
  • 跨代理
  • 使用 Java 7

通信似乎搞砸了,连接的服务器无法解码请求中的数据(甚至无法解码完整的请求)。 我知道,这并不容易复制。也许有人知道,如果 Java 7 的实现在 HTTPS 加密方面发生了变化,以及如何解决这个问题。

代码:

RestClient.proxy = ENV['https_proxy']
RestClient.post 'https://server.com/path', data,  { 'Content-type' => 'application/json' }

非常感谢!!

【问题讨论】:

  • 我在这个问题中缺少一个变量:你的代理是什么?

标签: ruby-on-rails https proxy jruby java-7


【解决方案1】:

我遇到了一些类似的“时髦”问题,它是从 java 6 到 7。

对我而言,主要区别在于“”“新”“”首选加密模式。现在是椭圆曲线和AES。但是我之前有一个完整的堆栈工作良好,压力是巨大的。 我决定“降级我的加密算法”并禁用 ECC 和 AES。 --> 烈火大战即将来临,原因我就不解释了。

到目前为止一切顺利。

这是一个很大的变化,数据包的“大小”变化,握手变化等等。

看看这些: [1] - http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html#knownissues ---> 安全会议...

[2] - http://docs.oracle.com/javase/7/docs/technotes/guides/security/enhancements-7.html --> 还是一样的..

我希望这些链接能让您找到正确的方向。但我认为你应该禁用 ecc 和 aes 并使用其他方式(RSA?)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    相关资源
    最近更新 更多