Подключитесь к несертифицированному хосту через FTP через TLS / SSL

Поставщик, с которого я беру файл, меняется с FTP на FTP через SSL.

Я пытаюсь обновить свой код изnet/ftp вnet/ftptls

Новый хост, к которому мне нужно подключиться, не сертифицирован, и мой скрипт сообщает об этой ошибке.

имя хоста не совпадает с сертификатом сервера

Продавец не исправит это.

Смотря на/usr/lib/ruby/1.8/net/ftptls.rb Я подумал, что будет не так уж и сложно исправить FTPTLS, чтобы игнорировать ненадежного хоста.

Я пытался изменитьverify_mode вOpenSSL::SSL::VERIFY_NONE и комментирование строки post_connection_check`.

ни сработало.

Есть мысли о том, как это сделать?

require 'socket'
require 'openssl'
require 'net/ftp'

module Net
  class FTPTLS < FTP
    def connect(host, port=FTP_PORT)
      @hostname = host
      super
    end

    def login(user = "anonymous", passwd = nil, acct = nil)
       store = OpenSSL::X509::Store.new
       store.set_default_paths
       ctx = OpenSSL::SSL::SSLContext.new('SSLv23')
       ctx.cert_store = store
       ctx.verify_mode = OpenSSL::SSL::VERIFY_PEER
       ctx.key = nil
       ctx.cert = nil
       voidcmd("AUTH TLS")
       @sock = OpenSSL::SSL::SSLSocket.new(@sock, ctx)
       @sock.connect
       @sock.post_connection_check(@hostname)
       super(user, passwd, acct)
       voidcmd("PBSZ 0")
    end
  end
end

Ответы на вопрос(2)

Ваш ответ на вопрос