-
v0.4.0
Stablereleased this
2026-10-26 21:32:24 +00:00 | 24 commits to main since this releaseAdded
-leaf-keyselects RSA or ECDSA P-256 keys for MITM certificates, andSelfSignedCA.KeyAlgorithmdoes the same in the library.-leaf-validityandSelfSignedCA.Validityset how long MITM certificates stay valid.-ca-certand-ca-keyread the CA from PEM files, and create both when neither exists.-ca-nameand-ca-orgset the subject of a generated CA.-print-caprints the CA certificate as PEM and exits.issuer.RootTemplate,issuer.NewRoot,issuer.LoadOrCreateandissuer.WriteFilescreate, read and write a CA.-set-headerand-del-headerset and strip headers on plain-HTTP and MITM requests to matching hosts.- The
headersmiddleware package rewrites request headers per host pattern. router.MatchHostmatches a hostname against a host pattern.-socksopens a SOCKS5 listener routed by the same-mitmand-tunnelrules asCONNECTrequests.- The
socks5package serves SOCKS5 connections asCONNECTrequests to anhttp.Handler. - Traces, metrics and logs are exported through the OpenTelemetry SDK, configured by the standard
OTEL_*environment variables and exporting over OTLP to localhost by default. - Log records written while a request is traced carry
trace_idandspan_id, andlog.TraceHandleradds them to anyslog.Handler. - The command stops on SIGINT and SIGTERM, flushing telemetry before it exits.
Changed
- Breaking: the module path is
sarak.sh/mikluko/multiproxy; imports ofgithub.com/akabos/multiproxychange to it. - Breaking: building requires Go 1.26 or later.
- Breaking:
router.Routeranswers a plain-HTTP request with 403 unless a host pattern matches its host orConnectis set, so-mitmand-tunnelrestrict plain HTTP as well asCONNECT. - Breaking: the
logmiddleware package is built onlog/slog:log.Middlewaretakes an access and a server*slog.Logger, and the helpers takeslogkey-value arguments instead ofzap.Field. - Logs are written by
log/slog: JSON records carrytimeinstead ofts, and server records carry upper-case levels. - With telemetry enabled, an upstream request carries the proxy's span in its
traceparentheader in place of the client's.
Removed
- The Docker image is no longer published.
- Breaking:
log.DefaultAccessLogEncoderConfig,log.DefaultServerLogEncoderConfigandlog.Fatal; the zap dependency is gone.
Fixed
- MITM certificates name the requested hostname as a subject alternative name, so Go clients accept them.
- MITM certificate keys honour
SelfSignedCA.BitSize, which defaults to 2048 bits instead of 1024. - MITM certificates are valid for 30 days by default instead of 10 years, and are issued again once expired.
- MITM certificates carry random serial numbers instead of all sharing serial 1.
- A generated CA is signed with SHA-256 instead of SHA-1, and carries a random serial number.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads