ruby-HTTPClinet-SSL&;设置身份验证

ruby-HTTPClinet-SSL&;设置身份验证,ruby,https,httpclient,ntlm,same-origin-policy,Ruby,Https,Httpclient,Ntlm,Same Origin Policy,我正在努力理解这里出了什么问题。由于我不理解的原因,我公司的软件需要两个端口来使用NTLM进行连接。最初它连接到443,然后重定向到4244进行身份验证,然后返回到443。服务器上的同一证书绑定到两个端口 我的第一个HTTPSGET工作正常,但是第二个却抱怨证书问题。我相信这是由于重新定向返回。如果我将set_auth的域设置为4244,则重定向回失败,如果我将其设置为443(即关闭端口),则无法进行身份验证 client = HTTPClient.new() client.ssl_config

我正在努力理解这里出了什么问题。由于我不理解的原因,我公司的软件需要两个端口来使用NTLM进行连接。最初它连接到443,然后重定向到4244进行身份验证,然后返回到443。服务器上的同一证书绑定到两个端口

我的第一个HTTPS
GET
工作正常,但是第二个却抱怨证书问题。我相信这是由于重新定向返回。如果我将
set_auth
的域设置为4244,则重定向回失败,如果我将其设置为443(即关闭端口),则无法进行身份验证

client = HTTPClient.new()
client.ssl_config.set_trust_ca('./SenseStandalone/root.pem')
client.ssl_config.set_client_cert_file(cert, key)
...
@base_uri = "https://SenseStandalone"
https_url = @base_uri+path #+'?xrfkey='+@xrf
client.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_PEER
client.set_auth(@base_uri, 'login', 'password')
t = client.get(https_url, query, extheader, :follow_redirect => true)
pp t
redirect = t.http_header.request_uri.to_s
puts redirect
client.set_auth('https://SenseStandalone:4244', 'login', 'password')
r = client.get(redirect, nil, extheader, :follow_redirect => true)
pp r.status_code, r.body
我真正需要它做的是能够将域设置为整个服务器。将其设置为“nil”会导致它完全失败

当然,我可以通过以下方法解决此问题:

client.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_NONE
但如果我有选择的话,我宁愿不这样做

顺便说一句,你知道为什么我需要手动执行第一个重定向吗?第二个独立重定向

实际误差: 因此,具体而言,错误是: C:/dev/Ruby22-x64/lib/ruby/2.2.0/openssl/ssl.rb:240:在“连接后检查”中:主机名“sensestandalone”与服务器证书不匹配(openssl::ssl::SSLError)

两个端口的证书相同:

C:\Windows\system32>netsh http show sslcert
SSL证书绑定:
IP:port:0.0.0.0:4244
证书哈希:7b2969cf62af93fc0ebca19b597a370a32be89b7
应用程序ID:{cebd7eb4-e9bb-4377-85be-d961248daa80}
证书存储名称:(空)
验证客户端证书吊销:已启用
仅使用缓存的客户端证书验证吊销:已禁用
使用情况检查:已启用
吊销新鲜度时间:0
URL检索超时:0
Ctl标识符:(空)
Ctl存储名称:(空)
DS映射器用法:已禁用
协商客户端证书:已禁用
IP:端口:0.0.0.0:443
证书哈希:7b2969cf62af93fc0ebca19b597a370a32be89b7
应用程序ID:{3af37b68-4503-431e-b020-9e85fe225814}
证书存储名称:(空)
验证客户端证书吊销:已启用
仅使用缓存的客户端证书验证吊销:已禁用
使用情况检查:已启用
吊销新鲜度时间:0
URL检索超时:0
Ctl标识符:(空)
Ctl存储名称:(空)
DS映射器用法:已禁用
协商客户端证书:已禁用

SSL证书(443):
C:\openssl\bin>openssl s_客户端-连接sensestandalone:443-tls1-servername sensestandalone | openssl x509-text-noout
将“屏幕”加载到随机状态-完成
深度=0 CN=SenseStandalone
验证错误:num=20:无法获取本地颁发者证书
验证返回:1
深度=0 CN=SenseStandalone
验证错误:num=21:无法验证第一个证书
验证返回:1
证书:
数据:
版本:3(0x2)
序列号:
d9:cd:81:4e:f8:8c:28:ed:f5:1d:0c:67:ae:5c:45
签名算法:SHA256WithRSA加密
发行人:CN=SenseStandalone CA
有效性
不在:2017年1月2日04:19:53 GMT之前
不在:1月9日04:19:53 2027 GMT之后
主题:CN=SenseStandalone
主题公钥信息:
公钥算法:rsa加密
公钥:(2048位)
模数:
00:8b:23:c4:f9:6c:d2:19:90:db:9c:51:2a:14:5e:
88:c5:24:cf:e9:3a:67:82:7a:8f:db:9b:ad:39:99:
9c:4c:1c:c4:11:ae:6a:96:20:24:e1:e2:19:c3:9e:
53:ba:52:45:4d:93:79:80:8b:c3:d9:3f:e7:7e:88:
65:16:b7:e5:84:8e:7c:1d:1e:e4:b4:df:29:8b:b4:
1e:6b:c2:c0:b8:83:78:16:de:4d:65:80:b0:b5:c6:
53:86:05:63:b3:2b:52:a0:20:8a:35:b0:fc:5d:25:
e8:77:32:b3:8c:28:b3:53:39:d1:4e:7b:df:0b:ee:
4c:51:bd:bf:01:f2:99:4b:59:31:c2:8e:04:a3:15:
0e:2c:34:da:e7:66:11:1d:77:85:80:28:d2:6b:05:
97:28:c0:97:a3:e4:8e:28:a7:d0:24:d5:69:da:e2:
2c:b1:5f:ee:5b:28:4e:44:04:c2:45:32:26:d7:8f:
19:56:95:e1:2a:ac:72:e1:57:ef:85:7e:53:dc:09:
44:22:4e:02:d6:20:69:02:c0:6a:49:23:76:5e:6d:
4f:e1:c6:9c:1b:a2:75:9d:b2:f7:65:89:cf:89:10:
37:c3:57:b0:a8:77:aa:c4:15:a8:7c:00:e6:75:c9:
06:7d:76:9e:cb:51:e9:ae:4e:e9:f8:57:ee:e2:e4:
de:c7
指数:65537(0x100001)
X509v3扩展:
X509v3主题密钥标识符:
17:90:47:3E:66:51:DA:14:1A:A5:85:77:D2:36:66:61:E4:3A:08:FF
X509v3授权密钥标识符:
keyid:C9:D1:A4:38:7F:FA:6F:9A:05:DD:CC:8A:D9:7B:4C:12:98:38:86:AE
1.3.6.1.5.5.7.13.3:
服务
1.3.6.1.5.5.7.13.1:
vgu,…e…q…Y.*r…GiG/铝…+…O…>.w.9…M`f…,T..w`…i^.b…&。。。!C.…]。。{h9.W…W3…F(…(=)…Z…x…F…2)
1.3.6.1.5.5.7.13.2:
…SJ…S.8/
签名算法:SHA256WithRSA加密
27:2d:1d:c1:43:00:77:ec:76:a9:f1:f8:c3:73:26:58:e8:7d:
fc:61:3b:cf:91:dd:cf:b7:6c:66:ac:5d:c7:bb:08:10:85:2a:
4a:be:b8:d2:df:c3:02:ff:02:f9:9d:89:e7:6c:6c:82:d9:99:
9a:47:2a:65:01:c8:d2:ad:f4:c8:e1:a4:12:72:3a:c6:11:d6:
90:b2:4e:2a:42:a5:d6:53:69:1b:57:ee:2c:02:b6:a1:8a:a5:
bb:6d:23:04:46:69:74:fa:c7:f3:70:d4:a7:d0:8b:ca:cd:ff:
65:5e:e3:44:20:be:28:58:08:5b:5f:9d:f0:07:1b:b9:ee:ca:
7e:33:99:49:2e:57:b8:5e:dd:82:e4:7e:85:33:e7:3d:27:7c:
d5:a9:b0:24:22:6b:17:3e:34:91:c6:a0:22:b7:3c:85:6c:64:
埃德:d2:72:a7:ac:a7:5d:04:b5:fa:4a:48:49:bc:31:0f:48:38: