71
71
- [ Plugin Ordering] ( #plugin-ordering )
72
72
- [ End-to-End Encryption] ( #end-to-end-encryption )
73
73
- [ TLS Interception] ( #tls-interception )
74
+ - [ Insecure TLS Interception] ( #insecure-tls-interception )
74
75
- [ TLS Interception With Docker] ( #tls-interception-with-docker )
75
76
- [ GROUT (NGROK Alternative)] ( #grout-ngrok-alternative )
76
77
- [ Grout Usage] ( #grout-usage )
@@ -1241,6 +1242,13 @@ cached file instead of plain text.
1241
1242
Now use CA flags with other
1242
1243
[ plugin examples] ( #plugin-examples ) to see them work with ` https ` traffic.
1243
1244
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
+
1244
1252
## TLS Interception With Docker
1245
1253
1246
1254
Important notes about TLS Interception with Docker container:
@@ -2510,17 +2518,16 @@ To run standalone benchmark for `proxy.py`, use the following command from repo
2510
2518
2511
2519
``` console
2512
2520
❯ 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]
2520
2522
[--tunnel-username TUNNEL_USERNAME]
2521
2523
[--tunnel-ssh-key TUNNEL_SSH_KEY]
2522
2524
[--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]
2524
2531
[--local-executor LOCAL_EXECUTOR] [--backlog BACKLOG]
2525
2532
[--hostname HOSTNAME] [--hostnames HOSTNAMES [HOSTNAMES ...]]
2526
2533
[--port PORT] [--ports PORTS [PORTS ...]] [--port-file PORT_FILE]
@@ -2533,9 +2540,9 @@ usage: -m [-h] [--enable-proxy-protocol] [--threadless] [--threaded]
2533
2540
[--work-klass WORK_KLASS] [--pid-file PID_FILE] [--openssl OPENSSL]
2534
2541
[--data-dir DATA_DIR] [--ssh-listener-klass SSH_LISTENER_KLASS]
2535
2542
[--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]
2539
2546
[--auth-plugin AUTH_PLUGIN] [--cache-requests]
2540
2547
[--cache-by-content-type] [--cache-dir CACHE_DIR]
2541
2548
[--proxy-pool PROXY_POOL] [--enable-web-server]
@@ -2549,13 +2556,25 @@ usage: -m [-h] [--enable-proxy-protocol] [--threadless] [--threaded]
2549
2556
[--filtered-client-ips FILTERED_CLIENT_IPS]
2550
2557
[--filtered-url-regex-config FILTERED_URL_REGEX_CONFIG]
2551
2558
2552
- proxy.py v2.4.4rc6.dev191+gef5a8922
2559
+ proxy.py v2.4.5
2553
2560
2554
2561
options:
2555
2562
-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.
2559
2578
--threadless Default: True. Enabled by default on Python 3.8+ (mac,
2560
2579
linux). When disabled a new thread is spawned to
2561
2580
handle each client connection.
@@ -2567,6 +2586,9 @@ options:
2567
2586
--enable-events Default: False. Enables core to dispatch lifecycle
2568
2587
events. Plugins can be used to subscribe for core
2569
2588
events.
2589
+ --enable-proxy-protocol
2590
+ Default: False. If used, will enable proxy protocol.
2591
+ Only version 1 is currently supported.
2570
2592
--enable-conn-pool Default: False. (WIP) Enable upstream connection
2571
2593
pooling.
2572
2594
--key-file KEY_FILE Default: None. Server key file to enable end-to-end
@@ -2588,21 +2610,6 @@ options:
2588
2610
--timeout TIMEOUT Default: 10.0. Number of seconds after which an
2589
2611
inactive connection must be dropped. Inactivity is
2590
2612
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.
2606
2613
--local-executor LOCAL_EXECUTOR
2607
2614
Default: 1. Enabled by default. Use 0 to disable. When
2608
2615
enabled acceptors will make use of local (same
@@ -2668,6 +2675,8 @@ options:
2668
2675
Default: None. CA key to use for signing dynamically
2669
2676
generated HTTPS certificates. If used, must also pass
2670
2677
--ca-cert-file and --ca-signing-key-file
2678
+ --insecure-tls-interception
2679
+ Default: False. Disables certificate verification
2671
2680
--ca-cert-dir CA_CERT_DIR
2672
2681
Default: ~/.proxy/certificates. Directory to store
2673
2682
dynamically generated certificates. Also see --ca-key-
@@ -2676,9 +2685,9 @@ options:
2676
2685
Default: None. Signing certificate to use for signing
2677
2686
dynamically generated HTTPS certificates. If used,
2678
2687
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
2682
2691
verification
2683
2692
--ca-signing-key-file CA_SIGNING_KEY_FILE
2684
2693
Default: None. CA signing key to use for dynamic
0 commit comments