pub struct TlsSpoofingProxy { /* private fields */ }Expand description
A silent TLS Man-in-the-Middle (MITM) proxy that injects JA4/TLS fingerprints.
This proxy intercepts HTTP/HTTPS requests from a standard proxy-equipped client
(like Headless Chrome), terminates the TLS connection using self-signed certs via rcgen,
and forwards the upstream request utilizing a tightly bound wreq client matching the
intended target fingerprint.
Implementations§
Source§impl TlsSpoofingProxy
impl TlsSpoofingProxy
Sourcepub async fn start(
impersonate_client: Client,
debug_mode: bool,
) -> Result<Self, Error>
pub async fn start( impersonate_client: Client, debug_mode: bool, ) -> Result<Self, Error>
Binds the proxy to an available local TCP port and spawns the background listener.
§Arguments
impersonate_client- The configuredwreqTLS/JA4 impersonation clientdebug_mode- Iftrue, logs all intercepted requests and TLS upgrades to stdout
Sourcepub fn port(&self) -> u16
pub fn port(&self) -> u16
Returns the active local loopback port dynamically assigned during start().
Sourcepub fn set_upstream_client(&self, client: Client)
pub fn set_upstream_client(&self, client: Client)
Hot-swap the upstream impersonation client (e.g. to rotate the egress proxy).
In-flight requests finish on the previous client; subsequent requests use
client. The local MITM port is unchanged, so the browser needs no restart.
Trait Implementations§
Source§impl Drop for TlsSpoofingProxy
impl Drop for TlsSpoofingProxy
Auto Trait Implementations§
impl !RefUnwindSafe for TlsSpoofingProxy
impl !UnwindSafe for TlsSpoofingProxy
impl Freeze for TlsSpoofingProxy
impl Send for TlsSpoofingProxy
impl Sync for TlsSpoofingProxy
impl Unpin for TlsSpoofingProxy
impl UnsafeUnpin for TlsSpoofingProxy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more