Method: Metasploit::Aggregator::ConnectionManager#add_cable_https

Defined in:
lib/metasploit/aggregator/connection_manager.rb

#add_cable_https(host, port, certificate) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/metasploit/aggregator/connection_manager.rb', line 65

def add_cable_https(host, port, certificate)
  @manager_mutex.synchronize do
    forwarder = Metasploit::Aggregator::HttpsForwarder.new
    forwarder.log_messages = true
    server = TCPServer.new(host, port)
    ssl_context = OpenSSL::SSL::SSLContext.new
    unless certificate.nil?
      ssl_context.key, ssl_context.cert = ssl_parse_certificate(certificate)
    else
      ssl_context.key, ssl_context.cert = Metasploit::Aggregator::ConnectionManager.ssl_generate_certificate
    end
    ssl_server = OpenSSL::SSL::SSLServer.new(server, ssl_context)

    handler = connect_cable(ssl_server, host, port, forwarder)
    @cables << Cable.new(handler, server, forwarder)
    handler
  end
end