-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathcerts.go
More file actions
24 lines (21 loc) · 807 Bytes
/
certs.go
File metadata and controls
24 lines (21 loc) · 807 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package main
import (
"crypto/tls"
"crypto/x509"
"github.com/elazarl/goproxy"
)
func setCA(caCert, caKey []byte) error {
ca, err := tls.X509KeyPair(caCert, caKey)
if err != nil {
return err
}
if ca.Leaf, err = x509.ParseCertificate(ca.Certificate[0]); err != nil {
return err
}
goproxy.GoproxyCa = ca
goproxy.OkConnect = &goproxy.ConnectAction{Action: goproxy.ConnectAccept, TLSConfig: goproxy.TLSConfigFromCA(&ca)}
goproxy.MitmConnect = &goproxy.ConnectAction{Action: goproxy.ConnectMitm, TLSConfig: goproxy.TLSConfigFromCA(&ca)}
goproxy.HTTPMitmConnect = &goproxy.ConnectAction{Action: goproxy.ConnectHTTPMitm, TLSConfig: goproxy.TLSConfigFromCA(&ca)}
goproxy.RejectConnect = &goproxy.ConnectAction{Action: goproxy.ConnectReject, TLSConfig: goproxy.TLSConfigFromCA(&ca)}
return nil
}