Skip to content

Commit 978075b

Browse files
madeyeclaude
andcommitted
Bump version to 0.3.0
v0.3.0 fixes HTTP/2 stealth mode — direct visitors over HTTP/2 now correctly receive a fake nginx 404 instead of a 407 proxy auth response. Updates cross-compilation docs to use Docker instead of cargo-zigbuild. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent b446843 commit 978075b

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "https_proxy"
3-
version = "0.2.0"
3+
version = "0.3.0"
44
edition = "2021"
55
description = "Stealth HTTPS forward proxy with automatic Let's Encrypt TLS and nginx camouflage"
66
license = "MIT"

README.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ A stealth HTTPS forward proxy in Rust. It auto-obtains TLS certificates via Let'
55
## Features
66

77
- **Automatic TLS** — Certificates issued and renewed via ACME (TLS-ALPN-01 on port 443, no port 80 needed)
8-
- **Stealth mode** — Non-proxy requests get an identical nginx-style 404; proxy requests with bad auth get a standard 407 so real clients (Chrome, curl) can authenticate
9-
- **HTTP/2 support** — Full HTTP/2 with extended CONNECT protocol (RFC 8441) for browser compatibility
8+
- **Stealth mode** — Non-proxy requests get an identical nginx-style 404 over both HTTP/1.1 and HTTP/2; proxy requests with bad auth get a standard 407 so real clients (Chrome, curl) can authenticate
9+
- **HTTP/2 support** — Full HTTP/2 with extended CONNECT protocol (RFC 8441) for browser compatibility; correct stealth behavior for HTTP/2 clients
1010
- **CONNECT tunneling** — Full HTTPS tunnel support for proxying TLS traffic
1111
- **HTTP forwarding** — Plain HTTP proxy requests forwarded to upstream servers
1212
- **Multi-user auth** — Basic auth with multiple username/password pairs
@@ -20,9 +20,9 @@ Requires Rust 1.70+ and a C compiler (for `aws-lc-sys`/`ring` crypto backends).
2020
# Native release build (stripped, LTO enabled)
2121
cargo build --release
2222

23-
# Cross-compile for Linux x86_64 from macOS (requires cargo-zigbuild + zig)
24-
rustup target add x86_64-unknown-linux-gnu
25-
cargo zigbuild --release --target x86_64-unknown-linux-gnu
23+
# Cross-compile for Linux x86_64 from macOS (requires Docker)
24+
docker run --platform linux/amd64 --rm -v "$(pwd)":/src -w /src \
25+
rust:latest cargo build --release --target x86_64-unknown-linux-gnu
2626
```
2727

2828
### Prerequisites
@@ -33,8 +33,7 @@ cargo zigbuild --release --target x86_64-unknown-linux-gnu
3333
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
3434

3535
# For cross-compilation to Linux
36-
brew install zig
37-
cargo install cargo-zigbuild
36+
# Docker Desktop required
3837
```
3938

4039
**Linux (Debian/Ubuntu):**
@@ -43,7 +42,7 @@ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
4342
apt install build-essential cmake
4443
```
4544

46-
The release binary is stripped with LTO enabled (~3 MB).
45+
The release binary is stripped with LTO enabled (~7 MB).
4746

4847
## Configuration
4948

@@ -117,7 +116,7 @@ Commands:
117116
## How It Works
118117
119118
1. All connections terminate TLS with a valid Let's Encrypt certificate (HTTP/1.1 and HTTP/2)
120-
2. Requests without an absolute URI or CONNECT method are treated as probes → fake nginx 404
119+
2. Requests without an absolute URI (HTTP/1.1) or CONNECT method (HTTP/1.1 and HTTP/2) are treated as probes → fake nginx 404
121120
3. Proxy requests with missing or invalid credentials → 407 with `Proxy-Authenticate` header (enables browser auth prompts)
122121
4. Authenticated CONNECT requests → TCP tunnel via HTTP upgrade + bidirectional copy
123122
5. Authenticated HTTP requests → forwarded to upstream with proxy headers stripped

0 commit comments

Comments
 (0)