def _deferred_start(self): ret = update_db() if ret == -1: reactor.stop() return if ret == 0: create_db() init_db() sync_clean_untracked_files() sync_refresh_memory_variables() sync_initialize_snimap() self.state.orm_tp.start() reactor.addSystemEventTrigger('before', 'shutdown', self.shutdown) for sock in self.state.http_socks: listen_tcp_on_sock(reactor, sock.fileno(), self.api_factory) for sock in self.state.https_socks: listen_tls_on_sock(reactor, fd=sock.fileno(), contextFactory=self.state.snimap, factory=self.api_factory) self.start_jobs() self.print_listening_interfaces()
def __init__(self, *args, **kwargs): super(HTTPSProcess, self).__init__(*args, **kwargs) proxy_url = 'http://' + self.cfg['proxy_ip'] + ':' + str( self.cfg['proxy_port']) http_proxy_factory = HTTPStreamFactory(proxy_url) cv = ChainValidator() ok, err = cv.validate(self.cfg, must_be_disabled=False, check_expiration=False) if not ok or not err is None: raise err snimap = SNIMap({ 'DEFAULT': TLSServerContextFactory(self.cfg['ssl_key'], self.cfg['ssl_cert'], self.cfg['ssl_intermediate'], self.cfg['ssl_dh']) }) socket_fds = self.cfg['tls_socket_fds'] for socket_fd in socket_fds: self.log("Opening socket: %d : %s" % (socket_fd, os.fstat(socket_fd))) port = listen_tls_on_sock(reactor, fd=socket_fd, contextFactory=snimap, factory=http_proxy_factory) self.ports.append(port) self.log("HTTPS proxy listening on %s" % port)
def __init__(self, *args, **kwargs): super(HTTPSProcess, self).__init__(*args, **kwargs) proxy_url = 'http://' + self.cfg['proxy_ip'] + ':' + str( self.cfg['proxy_port']) self.http_proxy_factory = HTTPStreamFactory(proxy_url) for site_cfg in self.cfg['site_cfgs']: cv = ChainValidator() ok, err = cv.validate(site_cfg, must_be_disabled=False, check_expiration=False) if not ok or not err is None: raise err default_site = self.cfg['site_cfgs'].pop(0) sni_dict = {'DEFAULT': make_TLSContextFactory(default_site)} for site_cfg in self.cfg['site_cfgs']: sni_dict[site_cfg['hostname']] = make_TLSContextFactory(site_cfg) self.snimap = SNIMap(sni_dict) for socket_fd in self.cfg['tls_socket_fds']: self.log("Opening socket: %d : %s" % (socket_fd, os.fstat(socket_fd))) port = listen_tls_on_sock(reactor, fd=socket_fd, contextFactory=self.snimap, factory=self.http_proxy_factory) self.ports.append(port) self.log("HTTPS proxy listening on %s" % port)
def __init__(self, *args, **kwargs): super(HTTPSProcess, self).__init__(*args, **kwargs) proxy_url = 'http://' + self.cfg['proxy_ip'] + ':' + str(self.cfg['proxy_port']) self.http_proxy_factory = HTTPStreamFactory(proxy_url) for site_cfg in self.cfg['site_cfgs']: cv = ChainValidator() ok, _ = cv.validate(site_cfg, must_be_disabled=False, check_expiration=False) if not ok: raise Exception("Invalid HTTPS configuration") default_site = self.cfg['site_cfgs'].pop(0) sni_dict = {'DEFAULT': make_TLSContextFactory(default_site)} for site_cfg in self.cfg['site_cfgs']: sni_dict[site_cfg['hostname']] = make_TLSContextFactory(site_cfg) self.snimap = SNIMap(sni_dict) for socket_fd in self.cfg['tls_socket_fds']: self.log("Opening socket: %d : %s" % (socket_fd, os.fstat(socket_fd))) port = listen_tls_on_sock(reactor, fd=socket_fd, contextFactory=self.snimap, factory=self.http_proxy_factory) self.ports.append(port) self.log("HTTPS proxy listening on {} for hostnames: {}".format( port._realPortNumber, ', '.join(sni_dict.keys())))