[ruby/net-http] Handle invalid use of IP addresses in SNI

Server Name Indication does not allow IP addresses (RFC 6066, section 3:
`Literal IPv4 and IPv6 addresses are not permitted in "HostName".`).

Recent versions of LibreSSL enforce this restriction, which raises
when setting the hostname to an IP address (s.hostname=), before
attempting to setup the SSL connection.

Since the certificate used in the test is already for localhost,
we cannot connect to localhost.  However, as all the test does is
check for a specific exception, just modify the regexp used so it
handles both cases.

https://github.com/ruby/net-http/commit/6ab399db45
This commit is contained in:
Jeremy Evans 2022-01-03 15:18:02 -08:00 коммит произвёл git
Родитель 8d6e4f1565
Коммит 67612dadbc
1 изменённых файлов: 1 добавлений и 1 удалений

Просмотреть файл

@ -255,7 +255,7 @@ class TestNetHTTPS < Test::Unit::TestCase
ex = assert_raise(OpenSSL::SSL::SSLError){
http.request_get("/") {|res| }
}
re_msg = /certificate verify failed|hostname \"#{HOST_IP}\" does not match/
re_msg = /certificate verify failed|hostname \"#{HOST_IP}\" does not match|ssl3 ext invalid servername/
assert_match(re_msg, ex.message)
end