@@ -27,56 +27,104 @@ def test_connect_http_client_2
27
27
#assert res.code < 400
28
28
end
29
29
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'
33
31
puts "\n "
34
32
puts "------------------------------------------------------------"
35
- puts "-- Net::HTTP.new ... 'https://rubygems.org'"
33
+ puts "-- Net::HTTP.new ' #{ url = 'https://rubygems.org' } '"
36
34
puts "------------------------------------------------------------"
37
35
38
- uri = URI . parse ( 'https://rubygems.org' )
39
-
36
+ uri = URI . parse ( url )
40
37
http = Net ::HTTP . new ( uri . host , uri . port )
41
38
http . use_ssl = true
42
39
res = http . get ( '/' )
43
- assert_equal '200' , res . code
40
+ # assert_equal '200', res.code
44
41
end
45
42
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'
49
44
puts "\n "
50
45
puts "------------------------------------------------------------"
51
- puts "-- Net::HTTP.new ... 'https://fancyssl.hboeck.de'"
46
+ puts "-- Net::HTTP.new ' #{ url = 'https://fancyssl.hboeck.de' } '"
52
47
puts "------------------------------------------------------------"
53
48
54
- uri = URI . parse ( 'https://fancyssl.hboeck.de/' )
55
-
49
+ uri = URI . parse ( url )
56
50
http = Net ::HTTP . new ( uri . host , uri . port )
57
51
http . use_ssl = true
58
52
http . ssl_version = :TLSv1_2
59
53
res = http . get ( '/' )
60
- assert_equal Net ::HTTPOK , res . class
54
+ # assert_equal Net::HTTPOK, res.class
61
55
end
62
56
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'
66
59
puts "\n "
67
60
puts "------------------------------------------------------------"
68
- puts "-- Faraday.get ... 'http ://httpbingo.org/ip '"
61
+ puts "-- Net::HTTP.new ' #{ url = 'https ://check-tls.akamai.io/v1/tlsinfo.json' } '"
69
62
puts "------------------------------------------------------------"
70
63
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
73
70
puts res . body
74
71
end
75
72
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 "------------------------------------------------------------"
79
108
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'
80
128
puts "\n "
81
129
puts "------------------------------------------------------------"
82
130
puts "-- SSL min/max version ... 'https://google.co.uk'"
@@ -95,4 +143,5 @@ def test_connect_ssl_minmax_version
95
143
ssl . sysclose
96
144
end
97
145
end
146
+
98
147
end
0 commit comments