winguse / go-shp

Simple golang Secure HTTP Proxy implementation, support HTTP2 by default. Check out demo:

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Secure HTTP Proxy (SHP)

Simple golang Secure HTTP Proxy implementation, support HTTP2 by default.

To avoid proxy detection, it will act as reverse proxy unless providing correct authentication header. To allow Chrome extension to work well, it will request for authentication only if the client is requesting for a special URL.

If you don't need oAuth and are looking for server alternative, Caddy will be a better choice. Caddy has the same behavior when you config probe_resistance, checkout its doc here.

Install

Server

  1. You should have a domain and a server.
  2. Get a certificate from Let’s Encrypt, for example:
    $ sudo apt install letsencrypt
    $ sudo letsencrypt certonly -d YOUR_DOMAIN -m YOUR_EMAIL --agree-tos --standalone -n
    
  3. Download install.sh
  4. Make some changes, say the version you want to install, your domain name, your users and passwords. If you are not using OAuth backend, remove that section, or please add the OAuth config (This project assumes you are using Google OAuth, but it should works with other platform).
  5. $ chmod +x install.sh && ./install.sh

Client

Basic usage

If you are using OAuth backend, it will render the client usage details for you after login.

Chrome

The Chrome extension is public available now, you can install from Chrome Store.

The source code is in the chrome-extension directory, if you want to install from source code:

  • Follow the instruction in README.md
  • Open Menu / More Tools / Extensions
  • Enable Developer mode on the top right and Load unpacked from chrome-extension/dist.

About

Simple golang Secure HTTP Proxy implementation, support HTTP2 by default. Check out demo:

License:MIT License


Languages

Language:JavaScript 37.3%Language:Go 31.6%Language:TypeScript 26.3%Language:Makefile 2.3%Language:Shell 1.1%Language:HTML 0.9%Language:CSS 0.7%