Don't verify hostname when verify_hostname is false in tls_options#349
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
https://ruby.github.io/openssl/OpenSSL/SSL/SSLContext.html documents the option
verify_hostnameas whether to check the server certificate is valid for the hostname.But when I set
verify_hostnametofalseintls_options, it has no effect, it still reports the error "hostname does not match the server certificate".Then I found this is the result of #259 but the assumption is wrong that users who don't care about hostname validation should set
verify_modetoOpenSSL::SSL::VERIFY_NONE. This disables the certificate validation completely. Maybe the reason why #259 didn't add a check forverify_hostnameis becauseverify_hostnamewas added later in ruby/openssl#60 (i.e. the same year but a few months later).So for more fine-grained configuration to disable only hostname verification without disabling certificate validation, here is this pull request.