Я использую Mechanize для очистки сайта и получаю сообщения об ошибках, связанных с несоответствием имени хоста. Я обнаружил, что корень проблемы заключается в том, что SNI используется на сайте, который я очищаю, и я хотел бы указать имя хоста, чтобы убедиться, что используется правильный сертификат.
Вот моя текущая установка:
agent = Mechanize.new
agent.user_agent = custom_user_agent
agent.verify_mode = OpenSSL::SSL::VERIFY_PEER
page = agent.get "website.com"
И вот что, я думаю, мне нужно добавить (или что-то в этом роде), чтобы убедиться, что используется правильный сертификат:
OpenSSL::SSL::SSLSocket.hostname = "website.com"
Возможно ли это сделать в Mechanize или мне нужно выяснить, как вручную указать сертификат для использования?
Для контекста, я знаю о решении VERIFY_NONE
, но предпочел бы избегать его, учитывая уязвимости, которые оно вносит.
SSL_set_tlsext_host_name
, но ее неясно для меня, если/когда Ruby позвонит. - person jww   schedule 18.07.2016