Blog
My software ramblings and ideas.
Building an HTTP Proxy with MITM Inspection in Go: Understanding TLS, Certificates, and Network Security
I built a minimal forward HTTP proxy that intercepts and inspects both HTTP and
HTTPS traffic in Go. This project revealed how Go’s net/http
, crypto/tls
,
and net.Conn
interfaces work together. Note that this post focuses exclusively
on forward proxies, not reverse proxies.
The final project is capable of:
- Forward proxying HTTP connections.
- Forward proxying HTTPS connections.
- Logging request/response pair of all HTTP(S) connections (assuming you control the client’s certificate authorities).
- Blindly forwarding TCP data streams.
This post assumes basic familiarity with HTTP, TLS, and Go, but doesn’t require in-depth knowledge of these topics.
Screenz: Simple, secure, screen sharing
My most recent personal project, Screenz, started out as a brief study of WebRTC technology but, once I found myself using it for practical purposes, I decided to share it.
You can access it at https://screenz.agst.dev.
You can also view its source code at https://github.com/agstrc/screenz.
What is Screenz?
Screenz is a straightforward web tool designed for one core purpose: sharing your screen with someone else easily and quickly. Forget complex installations or account setups. With Screenz, you can start broadcasting your screen with just a couple of clicks.