@@ -27,56 +27,104 @@ def test_connect_http_client_2
2727 #assert res.code < 400
2828 end
2929
30- def test_connect_net_http_1
31- require 'uri' ; require 'net/https'
32-
30+ def test_connect_net_http_base ; require 'uri' ; require 'net/https'
3331 puts "\n "
3432 puts "------------------------------------------------------------"
35- puts "-- Net::HTTP.new ... 'https://rubygems.org'"
33+ puts "-- Net::HTTP.new ' #{ url = 'https://rubygems.org' } '"
3634 puts "------------------------------------------------------------"
3735
38- uri = URI . parse ( 'https://rubygems.org' )
39-
36+ uri = URI . parse ( url )
4037 http = Net ::HTTP . new ( uri . host , uri . port )
4138 http . use_ssl = true
4239 res = http . get ( '/' )
43- assert_equal '200' , res . code
40+ # assert_equal '200', res.code
4441 end
4542
46- def test_connect_net_http_2
47- require 'uri' ; require 'net/https'
48-
43+ def test_connect_net_http_tls12 ; require 'uri' ; require 'net/https'
4944 puts "\n "
5045 puts "------------------------------------------------------------"
51- puts "-- Net::HTTP.new ... 'https://fancyssl.hboeck.de'"
46+ puts "-- Net::HTTP.new ' #{ url = 'https://fancyssl.hboeck.de' } '"
5247 puts "------------------------------------------------------------"
5348
54- uri = URI . parse ( 'https://fancyssl.hboeck.de/' )
55-
49+ uri = URI . parse ( url )
5650 http = Net ::HTTP . new ( uri . host , uri . port )
5751 http . use_ssl = true
5852 http . ssl_version = :TLSv1_2
5953 res = http . get ( '/' )
60- assert_equal Net ::HTTPOK , res . class
54+ # assert_equal Net::HTTPOK, res.class
6155 end
6256
63- def test_faraday_get
64- require 'faraday'
65-
57+ # TODO https://www.howsmyssl.com/a/check
58+ def test_connect_net_http_tls13 ; require 'uri' ; require 'net/https'
6659 puts "\n "
6760 puts "------------------------------------------------------------"
68- puts "-- Faraday.get ... 'http ://httpbingo.org/ip '"
61+ puts "-- Net::HTTP.new ' #{ url = 'https ://check-tls.akamai.io/v1/tlsinfo.json' } '"
6962 puts "------------------------------------------------------------"
7063
71- res = Faraday . get ( 'https://httpbingo.org/ip' )
72- assert_equal 200 , res . status
64+ uri = URI . parse ( url )
65+ http = Net ::HTTP . new ( uri . host , uri . port )
66+ http . use_ssl = true
67+ http . ssl_version = :TLSv1_3
68+ res = http . get '/' , 'Accept' => 'application/json' , 'User-Agent' => ''
69+ #assert_equal '200', res.code
7370 puts res . body
7471 end
7572
76- def test_connect_ssl_minmax_version
77- require 'openssl'
78- require 'socket'
73+ # Pure Java TLS client - using HttpClient 4.x
74+ def test_base_line_net_http_tls13 ; require 'manticore'
75+ url = 'https://check-tls.akamai.io/v1/tlsinfo.json'
76+ ssl_config = {
77+ verify : :strict ,
78+ protocols : [ 'TLSv1.3' ]
79+ }
80+ client = Manticore ::Client . new ( ssl : ssl_config )
81+ response = client . get ( url , headers : { } ) . call
82+ assert response . code < 400
83+ puts response . body
84+ # NOTE: ['TLSv1.3'] fails on older Java 8/11 versions, despite supporting
85+ # - TLS_AES_128_GCM_SHA256
86+ # - TLS_AES_128_GCM_SHA256
87+ #
88+ # "tls_sni_status": "present",
89+ # "tls_version": "tls1.3",
90+ # "tls_sni_value": "check-tls.akamai.io",
91+ # "tls_cipher_name": "TLS_AES_256_GCM_SHA384",
92+ # "output_version": "0.1.21",
93+ # "timestamp": 1643716169
94+ #
95+ # "tls_sni_status": "present",
96+ # "tls_version": "tls1.2",
97+ # "tls_sni_value": "check-tls.akamai.io",
98+ # "tls_cipher_name": "ECDHE-RSA-AES256-GCM-SHA384",
99+ # "client_ip": "86.49.15.48",
100+ # "output_version": "0.1.21",
101+ end if defined? JRUBY_VERSION
102+
103+ def test_connect_net_http_other ; require 'uri' ; require 'net/https'
104+ puts "\n "
105+ puts "------------------------------------------------------------"
106+ puts "-- Net::HTTP.new '#{ url = 'https://s3.fr-par.scw.cloud' } '"
107+ puts "------------------------------------------------------------"
79108
109+ uri = URI . parse ( url )
110+ http = Net ::HTTP . new ( uri . host , uri . port )
111+ http . use_ssl = true
112+ res = http . get ( '/' )
113+ #assert_equal Net::HTTPOK, res.class
114+ end
115+
116+ def test_faraday_get ; require 'faraday'
117+ puts "\n "
118+ puts "------------------------------------------------------------"
119+ puts "-- Faraday.get '#{ url = 'https://httpbingo.org/ip' } '"
120+ puts "------------------------------------------------------------"
121+
122+ res = Faraday . get ( url )
123+ #assert_equal 200, res.status
124+ puts res . body
125+ end
126+
127+ def test_connect_ssl_minmax_version ; require 'openssl' ; require 'socket'
80128 puts "\n "
81129 puts "------------------------------------------------------------"
82130 puts "-- SSL min/max version ... 'https://google.co.uk'"
@@ -95,4 +143,5 @@ def test_connect_ssl_minmax_version
95143 ssl . sysclose
96144 end
97145 end
146+
98147end
0 commit comments