https://github.com/hyperifyio/gomiddleman
mTLS Proxy between services written in Go
https://github.com/hyperifyio/gomiddleman
Last synced: 9 days ago
JSON representation
mTLS Proxy between services written in Go
- Host: GitHub
- URL: https://github.com/hyperifyio/gomiddleman
- Owner: hyperifyio
- License: other
- Created: 2024-02-07T12:05:10.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-12T10:12:46.000Z (almost 2 years ago)
- Last Synced: 2024-02-12T13:27:23.496Z (almost 2 years ago)
- Language: Go
- Homepage:
- Size: 45.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 28
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# gomiddleman
`gomiddleman` is a secure, and efficient proxy service written in Go, designed
to facilitate secure communication between clients and backend services.
Operating as a Man-in-the-Middle (MitM) proxy, gomiddleman specializes in
handling mutual TLS (mTLS) connections, ensuring that all communications are
authenticated and encrypted without compromising on performance.
See our development status from [Issue 1](https://github.com/hyperifyio/gomiddleman/issues/1).
## Quick Start Guide
To get started with `gomiddleman`, download the latest release for your operating
system and execute it with the necessary flags:
```bash
wget https://github.com/hyperifyio/gomiddleman/releases/download/v0.0.1/gomiddleman-v0.0.1-linux-amd64.zip
unzip ./gomiddleman-v0.0.1-linux-amd64.zip
cd gomiddleman-v0.0.1-linux-amd64
./gomiddleman
```
For global installation:
```
sudo cp ./gomiddleman /usr/local/bin/gomiddleman
```
## Setting Up for Development
To build `gomiddleman` from source:
```bash
git clone git@github.com:hyperifyio/gomiddleman.git
cd gomiddleman
make
./gomiddleman
```
## License
Copyright (c) Heusala Group Ltd. All rights reserved.
Each software release of `gomiddleman` is initially under the HG Evaluation and
Non-Commercial License for the first two years. This allows use, modification,
and distribution for non-commercial and evaluation purposes only. Post this
period, the license transitions to the standard MIT license, permitting broader
usage, including commercial applications. For full details, refer to the
[LICENSE.md](LICENSE.md) file.
**Commercial usage licenses can be obtained under separate agreements.**
## Usage and Configuration
For usage and configuration options:
```bash
./gomiddleman --help
```
Output:
```
Usage of ./gomiddleman:
-ca string
proxy ca as PEM file (default "ca.pem")
-cert string
proxy certificate as PEM file (default "cert.pem")
-client-ca string
CA file to use for dynamic client certificate generation (default "ca.pem")
-client-ca-key string
CA key to use for dynamic client certificate generation (default "ca-key.pem")
-key string
proxy key as PEM file (default "key.pem")
-port string
port on which the proxy listens (default "8080")
-target string
target where to proxy connections (default "http://localhost:3000")
-type string
type of proxy (tcp or tls) (default "tls")
```