Crates.io | http-mtls-proxy |
lib.rs | http-mtls-proxy |
version | 0.1.0 |
source | src |
created_at | 2023-12-19 04:05:12.701664 |
updated_at | 2023-12-19 04:05:12.701664 |
description | A fast minimalistic mTLS proxy. |
homepage | |
repository | https://github.com/telenornorway/mtls-proxy.rs |
max_upload_size | |
id | 1073928 |
size | 58,026 |
An mTLS proxy (http to mTLS-https) written in Rust, meant to run in the Terminal. For Spring Boot Test Containers, have a look at http-mtls-proxy-boot3-test-container.
cargo install http-mtls-proxy
Usage: http-mtls-proxy [OPTIONS] <MAPPING1> [MAPPING]...
Arguments:
<MAPPING1> Define the request mappings. Ex ':9000/foo/:path*=https://example.com/{path}'
[MAPPING]...
Options:
--client <CLIENT> Create a client for outbound requests. Ex. --client foo=*.example.com
--cert <CERT> Define the certificate a client should use for mTLS. Ex. --cert foo=/path/to/example.com.pem
--key <KEY> Define the key a client should use for mTLS. Ex. --key foo=/path/to/example.com.key
-h, --help Print help
-V, --version Print version
Example:
http-mtls-proxy \
--client "aZone=https://*.mtls.a-zone.internal:*/*" \
--cert "aZone=/path/to/a-zone-user123.pem" \
--key "aZone=/path/to/a-zone-user123.key" \
--client "bZone=https://*.mtls.b-zone.internal:*/*" \
--cert "bZone=/path/to/b-zone-user123.pem" \
--key "bZone=/path/to/b-zone-user123.key" \
":3000/:letter([ab])-zone/:service/:path*=https://{service}.mtls.{letter}-zone.internal{/path}" \
":4000/something-special/:path*=https://something-special.mtls.b-zone.internal{/path}"