7171 - [ Plugin Ordering] ( #plugin-ordering )
7272- [ End-to-End Encryption] ( #end-to-end-encryption )
7373- [ TLS Interception] ( #tls-interception )
74+ - [ Insecure TLS Interception] ( #insecure-tls-interception )
7475 - [ TLS Interception With Docker] ( #tls-interception-with-docker )
7576- [ GROUT (NGROK Alternative)] ( #grout-ngrok-alternative )
7677 - [ Grout Usage] ( #grout-usage )
@@ -1241,6 +1242,13 @@ cached file instead of plain text.
12411242Now use CA flags with other
12421243[ plugin examples] ( #plugin-examples ) to see them work with ` https ` traffic.
12431244
1245+ ## Insecure TLS Interception
1246+
1247+ To intercept TLS traffic from a server using a self-signed certificate
1248+ add the ` --insecure-tls-interception ` flag to disable mandatory TLS certificate validation.
1249+
1250+ NOTE: This flag disables certificate check for all servers.
1251+
12441252## TLS Interception With Docker
12451253
12461254Important notes about TLS Interception with Docker container:
@@ -2510,17 +2518,16 @@ To run standalone benchmark for `proxy.py`, use the following command from repo
25102518
25112519``` console
25122520❯ proxy -h
2513- usage: -m [-h] [--enable-proxy-protocol] [--threadless] [--threaded]
2514- [--num-workers NUM_WORKERS] [--enable-events] [--enable-conn-pool]
2515- [--key-file KEY_FILE] [--cert-file CERT_FILE]
2516- [--client-recvbuf-size CLIENT_RECVBUF_SIZE]
2517- [--server-recvbuf-size SERVER_RECVBUF_SIZE]
2518- [--max-sendbuf-size MAX_SENDBUF_SIZE] [--timeout TIMEOUT]
2519- [--tunnel-hostname TUNNEL_HOSTNAME] [--tunnel-port TUNNEL_PORT]
2521+ usage: -m [-h] [--tunnel-hostname TUNNEL_HOSTNAME] [--tunnel-port TUNNEL_PORT]
25202522 [--tunnel-username TUNNEL_USERNAME]
25212523 [--tunnel-ssh-key TUNNEL_SSH_KEY]
25222524 [--tunnel-ssh-key-passphrase TUNNEL_SSH_KEY_PASSPHRASE]
2523- [--tunnel-remote-port TUNNEL_REMOTE_PORT]
2525+ [--tunnel-remote-port TUNNEL_REMOTE_PORT] [--threadless]
2526+ [--threaded] [--num-workers NUM_WORKERS] [--enable-events]
2527+ [--enable-proxy-protocol] [--enable-conn-pool] [--key-file KEY_FILE]
2528+ [--cert-file CERT_FILE] [--client-recvbuf-size CLIENT_RECVBUF_SIZE]
2529+ [--server-recvbuf-size SERVER_RECVBUF_SIZE]
2530+ [--max-sendbuf-size MAX_SENDBUF_SIZE] [--timeout TIMEOUT]
25242531 [--local-executor LOCAL_EXECUTOR] [--backlog BACKLOG]
25252532 [--hostname HOSTNAME] [--hostnames HOSTNAMES [HOSTNAMES ...]]
25262533 [--port PORT] [--ports PORTS [PORTS ...]] [--port-file PORT_FILE]
@@ -2533,9 +2540,9 @@ usage: -m [-h] [--enable-proxy-protocol] [--threadless] [--threaded]
25332540 [--work-klass WORK_KLASS] [--pid-file PID_FILE] [--openssl OPENSSL]
25342541 [--data-dir DATA_DIR] [--ssh-listener-klass SSH_LISTENER_KLASS]
25352542 [--disable-http-proxy] [--disable-headers DISABLE_HEADERS]
2536- [--ca-key-file CA_KEY_FILE] [--ca-cert-dir CA_CERT_DIR ]
2537- [--ca-cert-file CA_CERT_FILE ] [--ca-file CA_FILE ]
2538- [--ca-signing-key-file CA_SIGNING_KEY_FILE]
2543+ [--ca-key-file CA_KEY_FILE] [--insecure-tls-interception ]
2544+ [--ca-cert-dir CA_CERT_DIR ] [--ca-cert- file CA_CERT_FILE ]
2545+ [--ca-file CA_FILE] [--ca- signing-key-file CA_SIGNING_KEY_FILE]
25392546 [--auth-plugin AUTH_PLUGIN] [--cache-requests]
25402547 [--cache-by-content-type] [--cache-dir CACHE_DIR]
25412548 [--proxy-pool PROXY_POOL] [--enable-web-server]
@@ -2549,13 +2556,25 @@ usage: -m [-h] [--enable-proxy-protocol] [--threadless] [--threaded]
25492556 [--filtered-client-ips FILTERED_CLIENT_IPS]
25502557 [--filtered-url-regex-config FILTERED_URL_REGEX_CONFIG]
25512558
2552- proxy.py v2.4.4rc6.dev191+gef5a8922
2559+ proxy.py v2.4.5
25532560
25542561options:
25552562 -h, --help show this help message and exit
2556- --enable-proxy-protocol
2557- Default: False. If used, will enable proxy protocol.
2558- Only version 1 is currently supported.
2563+ --tunnel-hostname TUNNEL_HOSTNAME
2564+ Default: None. Remote hostname or IP address to which
2565+ SSH tunnel will be established.
2566+ --tunnel-port TUNNEL_PORT
2567+ Default: 22. SSH port of the remote host.
2568+ --tunnel-username TUNNEL_USERNAME
2569+ Default: None. Username to use for establishing SSH
2570+ tunnel.
2571+ --tunnel-ssh-key TUNNEL_SSH_KEY
2572+ Default: None. Private key path in pem format
2573+ --tunnel-ssh-key-passphrase TUNNEL_SSH_KEY_PASSPHRASE
2574+ Default: None. Private key passphrase
2575+ --tunnel-remote-port TUNNEL_REMOTE_PORT
2576+ Default: 8899. Remote port which will be forwarded
2577+ locally for proxy.
25592578 --threadless Default: True. Enabled by default on Python 3.8+ (mac,
25602579 linux). When disabled a new thread is spawned to
25612580 handle each client connection.
@@ -2567,6 +2586,9 @@ options:
25672586 --enable-events Default: False. Enables core to dispatch lifecycle
25682587 events. Plugins can be used to subscribe for core
25692588 events.
2589+ --enable-proxy-protocol
2590+ Default: False. If used, will enable proxy protocol.
2591+ Only version 1 is currently supported.
25702592 --enable-conn-pool Default: False. (WIP) Enable upstream connection
25712593 pooling.
25722594 --key-file KEY_FILE Default: None. Server key file to enable end-to-end
@@ -2588,21 +2610,6 @@ options:
25882610 --timeout TIMEOUT Default: 10.0. Number of seconds after which an
25892611 inactive connection must be dropped. Inactivity is
25902612 defined by no data sent or received by the client.
2591- --tunnel-hostname TUNNEL_HOSTNAME
2592- Default: None. Remote hostname or IP address to which
2593- SSH tunnel will be established.
2594- --tunnel-port TUNNEL_PORT
2595- Default: 22. SSH port of the remote host.
2596- --tunnel-username TUNNEL_USERNAME
2597- Default: None. Username to use for establishing SSH
2598- tunnel.
2599- --tunnel-ssh-key TUNNEL_SSH_KEY
2600- Default: None. Private key path in pem format
2601- --tunnel-ssh-key-passphrase TUNNEL_SSH_KEY_PASSPHRASE
2602- Default: None. Private key passphrase
2603- --tunnel-remote-port TUNNEL_REMOTE_PORT
2604- Default: 8899. Remote port which will be forwarded
2605- locally for proxy.
26062613 --local-executor LOCAL_EXECUTOR
26072614 Default: 1. Enabled by default. Use 0 to disable. When
26082615 enabled acceptors will make use of local (same
@@ -2668,6 +2675,8 @@ options:
26682675 Default: None. CA key to use for signing dynamically
26692676 generated HTTPS certificates. If used, must also pass
26702677 --ca-cert-file and --ca-signing-key-file
2678+ --insecure-tls-interception
2679+ Default: False. Disables certificate verification
26712680 --ca-cert-dir CA_CERT_DIR
26722681 Default: ~/.proxy/certificates. Directory to store
26732682 dynamically generated certificates. Also see --ca-key-
@@ -2676,9 +2685,9 @@ options:
26762685 Default: None. Signing certificate to use for signing
26772686 dynamically generated HTTPS certificates. If used,
26782687 must also pass --ca-key-file and --ca-signing-key-file
2679- --ca-file CA_FILE Default: /Users/abhinavsingh/Dev/proxy.py/.venv31013/l
2680- ib /python3.10 /site-packages/certifi/cacert.pem.
2681- Provide path to custom CA bundle for peer certificate
2688+ --ca-file CA_FILE Default: /Users/abhinavsingh/Dev/proxy.py/.venv3118/li
2689+ b /python3.11 /site-packages/certifi/cacert.pem. Provide
2690+ path to custom CA bundle for peer certificate
26822691 verification
26832692 --ca-signing-key-file CA_SIGNING_KEY_FILE
26842693 Default: None. CA signing key to use for dynamic
0 commit comments