mirror of
https://github.com/dstotijn/hetty.git
synced 2025-07-01 18:47:29 -04:00
Initial commit
This commit is contained in:
50
main.go
50
main.go
@ -2,53 +2,21 @@ package main
|
||||
|
||||
import (
|
||||
"crypto/tls"
|
||||
"crypto/x509"
|
||||
"log"
|
||||
"net"
|
||||
"os"
|
||||
"os/signal"
|
||||
"time"
|
||||
|
||||
"github.com/google/martian"
|
||||
"github.com/google/martian/mitm"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func main() {
|
||||
p := martian.NewProxy()
|
||||
defer p.Close()
|
||||
proxy := NewProxy()
|
||||
|
||||
tlsc, err := tls.LoadX509KeyPair("/Users/dstotijn/.ssh/gurp_cert.pem", "/Users/dstotijn/.ssh/gurp_key.pem")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
priv := tlsc.PrivateKey
|
||||
|
||||
x509c, err := x509.ParseCertificate(tlsc.Certificate[0])
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
s := &http.Server{
|
||||
Addr: ":8080",
|
||||
Handler: proxy,
|
||||
TLSNextProto: map[string]func(*http.Server, *tls.Conn, http.Handler){}, // Disable HTTP/2
|
||||
}
|
||||
|
||||
mc, err := mitm.NewConfig(x509c, priv)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
err := s.ListenAndServe()
|
||||
if err != nil && err != http.ErrServerClosed {
|
||||
log.Fatalf("HTTP server closed: %v", err)
|
||||
}
|
||||
mc.SetValidity(time.Hour)
|
||||
mc.SetOrganization("Gurp, Inc.")
|
||||
|
||||
p.SetMITM(mc)
|
||||
|
||||
l, err := net.Listen("tcp", ":8080")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
go func() {
|
||||
if err := p.Serve(l); err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
}()
|
||||
|
||||
sigc := make(chan os.Signal, 1)
|
||||
signal.Notify(sigc, os.Interrupt, os.Kill)
|
||||
<-sigc
|
||||
}
|
||||
|
Reference in New Issue
Block a user