Skip to content

Commit da8ebd5

Browse files
committed
add mitm to https
1 parent e5dc01d commit da8ebd5

File tree

9 files changed

+804
-30
lines changed

9 files changed

+804
-30
lines changed

ca-cert.pem

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDIjCCAgqgAwIBAgIIFXVvcHwf0pAwDQYJKoZIhvcNAQELBQAwLzEXMBUGA1UE
3+
ChMOZ29taXRtcHJveHkxLjExFDASBgNVBAMTC2dvbWl0bXByb3h5MB4XDTE4MTIw
4+
MTEzNTYxNVoXDTE5MTIzMTEzNTYxNVowLzEXMBUGA1UEChMOZ29taXRtcHJveHkx
5+
LjExFDASBgNVBAMTC2dvbWl0bXByb3h5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
6+
MIIBCgKCAQEAvJt45t6GtcMOPtLmpGLHJg4VxA3v5nV/T6adaqgz+pBA5Pbw1MLo
7+
5wWhdda254asqI9laKPk0QgluySw/IyP3dJ3EMB0jmdlXy+BRQobt7ls16/AW+If
8+
fIt8OmUF75b5iPdJq6DvM8xNOVHGyEvWjpCNwZhDFsqRelssH6wO2CndxqHe9R1k
9+
ffKGxhaeG21/5ung1+oZPiP4CccfJoDWtR2SvQhvl3Y5Aaqv824c1UbPnTATBEPK
10+
iYpnQvzAwwi15Z8bfnWW2CvAaQJ0TW8YGHaRTehN7YidAHk1WXUl192sihiDTfGI
11+
dCpXTuICCD3xkvRUJeHdw99Kv4CBG/qRtwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
12+
AqQwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEwEB/wQFMAMB
13+
Af8wDQYJKoZIhvcNAQELBQADggEBABUw6XQR1lQSTiRxAuzm9gWo5NKuW7vTSf9Z
14+
hQtb7+OVetj/GqI+AUqA5JpWAngWDOcaJi/bjWbEvasdh98Ho93yNslyKLRbI8Co
15+
rXJCVhC2aQxZ7fQlIKKH5S39yVgLR4/LAl8Yuug9gynCvYCuUfYL1dhlntgGm/m9
16+
gK4XOucimqnhsoWSDYq4xU80oetTykTlmy8Ms2hJo16eNcvDQGcMVxjsHGOScUl3
17+
qo+7nylKV/vHj1oCtHKOviUJ3F0JLjaEffOUZb8Gq99jE/Mu0OmS6LWWo0Lhh/mC
18+
syjLfCrIUE4aSdn30jzJKwoqVakjhaZIpF4UF/dfcO0HtzBwy+g=
19+
-----END CERTIFICATE-----

ca-pk.pem

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIIEpAIBAAKCAQEAvJt45t6GtcMOPtLmpGLHJg4VxA3v5nV/T6adaqgz+pBA5Pbw
3+
1MLo5wWhdda254asqI9laKPk0QgluySw/IyP3dJ3EMB0jmdlXy+BRQobt7ls16/A
4+
W+IffIt8OmUF75b5iPdJq6DvM8xNOVHGyEvWjpCNwZhDFsqRelssH6wO2CndxqHe
5+
9R1kffKGxhaeG21/5ung1+oZPiP4CccfJoDWtR2SvQhvl3Y5Aaqv824c1UbPnTAT
6+
BEPKiYpnQvzAwwi15Z8bfnWW2CvAaQJ0TW8YGHaRTehN7YidAHk1WXUl192sihiD
7+
TfGIdCpXTuICCD3xkvRUJeHdw99Kv4CBG/qRtwIDAQABAoIBAAe90e6X/6uCQBlw
8+
CquAqm/zcA1GDSzGcd1RF3EDSm7kcOV1BVmWTnz9DC2MDKHgM0IP8Lek0oWJ8hKG
9+
ZQVYt6cBNoXngGE/+Tc4+fNdgNm/sKoBusGKvIQeLZEwCFhXOBLZI5r51heoMRtD
10+
MgeSpVHguRDTMR3EXshI6by7ETjqHPguZNTvhAKVZPiTBpG3oaTGVUJ4n8LXyXe+
11+
Q7+G3dW9xdexAF0bJ9B9WRp0Y39ifGd6QxFuk/jNm08z2IZ+8bm707MT3ToiZsrz
12+
StyJrDYSOzwUSlTOWyB7RSWkqwkb9oFiW1OnoVKogRaqEl+N8Kr93FGtCGYXQ8W6
13+
w/i4JQECgYEA3d/mt9VBOxBhBcln+YECCiBdFux/6TkVxdryLpT1xy3i0dFBJFDM
14+
b0Cm11cEU+/xtd2vBXOD4hV6IUhTZQhgx3niHTz/Ul/JTjRtT256fmn0+ZAwSVVC
15+
OKiCn3evxHdbXAYzs0xU3kclJEQ1A+KRs1eCDbR4KMnggDXyL0sVd8ECgYEA2Z20
16+
A5h/wnKS4Osr9vKGjGMB11tXs/jqw6Ssox9IsdNmkfWYd2xlLhgT33tX5dknD0h7
17+
SoBqH7WUKh0AjrTOW5u+wphLyzouNMn8tDWBwd3bfyiKreNkR+dwDeVnq9GpwB0H
18+
9O4bVaPON3+e/+VPVrJa7ftG3lzPmehKlsQhp3cCgYAAg7xtQLleAbO357euBHaU
19+
v2531ySUzeUXCGL3aLEJPToBcpLMGsPeni/E4BbKewv8d/8n7BSqOZKG8TwAR/yx
20+
eb7kgne1ITO+UrDONltiX6yJx6PVB7WXnAxxgj2OHxi/JeSIzeyEd3XGl8HnuGbO
21+
G63ZikmdDprOsVFWer4aAQKBgQDFg4Cuvsw+1bUAVhMaWXfLldVG/Q32OJgEKMPU
22+
boGRfTmcgtf2lLilBI+NCKt34Ae2tGfK8BDiZPFs49PssqiVtx+GCarJcy4bFbW6
23+
btIt/srJeCeeukP7i1FGG5Bj/7FdwDvHkBHZQgrajofm5N+E5e7oD2h8TKrUm2SP
24+
wMZ28wKBgQCCLPNxueLu4f2xyBmt2Qc/DCfh1sj9CwcvLuwalhQKkDKoB15sR0PL
25+
hH1wNKWxJ8zvTPUA5zvT/jCHfYBhEKuI4DpKxU1z3fjWK5Df1Iqx1OFriCK8AQ+S
26+
uGCsfQBHdb9pZyqt/HwNMybAzAVzTLo9PX7szpeT6Qghdt90reZeuw==
27+
-----END RSA PRIVATE KEY-----

cache.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
// package cache implements a really primitive cache that associates expiring
2+
// values with string keys. This cache never clears itself out.
3+
package main
4+
5+
import (
6+
"sync"
7+
"time"
8+
)
9+
10+
// Cache is a cache for binary data
11+
type Cache struct {
12+
entries map[string]*entry
13+
mutex *sync.Mutex
14+
}
15+
16+
// entry is an entry in a Cache
17+
type entry struct {
18+
data interface{}
19+
expiration time.Time
20+
}
21+
22+
// NewCache creates a new Cache
23+
func NewCache() *Cache {
24+
c := &Cache{}
25+
c.entries = make(map[string]*entry)
26+
c.mutex = &sync.Mutex{}
27+
return c
28+
}
29+
30+
// Get returns the currently cached value for the given key, as long as it
31+
// hasn't expired. If the key was never set, or has expired, found will be
32+
// false.
33+
func (cache *Cache) Get(key string) (val interface{}, found bool) {
34+
cache.mutex.Lock()
35+
defer cache.mutex.Unlock()
36+
entry := cache.entries[key]
37+
if entry == nil {
38+
return nil, false
39+
} else if entry.expiration.Before(time.Now()) {
40+
return nil, false
41+
} else {
42+
return entry.data, true
43+
}
44+
}
45+
46+
// Set sets a value in the cache with an expiration of now + ttl.
47+
func (cache *Cache) Set(key string, data interface{}, ttl time.Duration) {
48+
cache.mutex.Lock()
49+
defer cache.mutex.Unlock()
50+
cache.entries[key] = &entry{data, time.Now().Add(ttl)}
51+
}

config.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package main
2+
3+
import "crypto/tls"
4+
5+
// TLSConfig Configuration for TLS
6+
type TLSConfig struct {
7+
PrivateKeyFile string
8+
CertFile string
9+
Organization string
10+
CommonName string
11+
ServerTLSConfig *tls.Config
12+
}
13+
14+
// NewTLSConfig init the TlsConfig
15+
func NewTLSConfig(pk, cert, org, cn string) *TLSConfig {
16+
return &TLSConfig{
17+
PrivateKeyFile: pk,
18+
CertFile: cert,
19+
Organization: org,
20+
CommonName: cn,
21+
ServerTLSConfig: &tls.Config{
22+
CipherSuites: []uint16{
23+
tls.TLS_RSA_WITH_RC4_128_SHA,
24+
tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA,
25+
tls.TLS_RSA_WITH_AES_128_CBC_SHA,
26+
tls.TLS_RSA_WITH_AES_256_CBC_SHA,
27+
tls.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
28+
tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
29+
tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
30+
tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA,
31+
tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
32+
tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
33+
tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
34+
tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
35+
tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
36+
tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
37+
tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
38+
},
39+
PreferServerCipherSuites: true,
40+
InsecureSkipVerify: true,
41+
},
42+
}
43+
}

0 commit comments

Comments
 (0)