Puppet Jruby NetHttp获取请求似乎有不好的密码

时间:2018-01-05 16:55:06

标签: ruby encryption puppet jruby openjdk

我们编写了一个puppet函数,它需要通过tls对服务器执行http get请求。 http请求直接从puppet master完成。远程服务器显然需要比我们的函数提供的更多的最新密码(我们使用ruby Net / Http库)。因此,远程服务器immedialty关闭连接(客户端Hello,[ACK],[FIN,ACK])

def http_client
  uri = URI("https://#{@config['server']}")
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE unless @config['vmssc_tls_verify']
  http
end

我们试图从木偶大师那里获得相同的API,但是成功的是,CuRL使用的openssl版本与木偶使用的版本不同。

我们发现的差异在于curl中我们在SHA256中有32个密码,但是使用了puppet使用的Net / Http库,我们在SHA1中只有11个密码。 Puppet服务器正在运行jruby,所以我们尝试在openJDK中添加java加密扩展但没有成功。 我们还观察到/etc/puppetlabs/puppetserver/conf.d/puppetserver.conf文件中列出的密码不受尊重(因此我们得到了客户端在tcpdump中使用的密码列表):

# settings related to HTTP client requests made by Puppet Server
http-client: {
# A list of acceptable protocols for making HTTP requests
ssl-protocols: [
    TLSv1.2,
]

# A list of acceptable cipher suites for making HTTP requests
cipher-suites: [
    TLS_RSA_WITH_AES_256_CBC_SHA256,
    TLS_RSA_WITH_AES_256_CBC_SHA,
    TLS_RSA_WITH_AES_128_CBC_SHA256,
    TLS_RSA_WITH_AES_128_CBC_SHA,
]

我们尝试将openJDK的版本升级到oracle JDK但没有成功。 我们使用Jruby和openJDK 8以及TLS_Version 1.2在puppetserver版本2.7.0上运行。

当puppetserver以原生ruby启动时,一切正常,我们已经得到了货物密码。我们不希望继续使用该配置来解决性能问题。

0 个答案:

没有答案