Skip to content

Commit 60fd158

Browse files
committed
added skip-verify option
1 parent 2dbf8b6 commit 60fd158

1 file changed

Lines changed: 18 additions & 4 deletions

File tree

server.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import (
99
"os"
1010
"time"
1111

12+
"crypto/tls"
13+
1214
"github.com/txn2/n2proxy/rweng"
1315
"go.uber.org/zap"
1416
)
@@ -27,7 +29,7 @@ type Proxy struct {
2729
//var _ http.RoundTripper = &transport{}
2830

2931
// NewProxy instances a new proxy server
30-
func NewProxy(target string, cfgFile string, logger *zap.Logger) *Proxy {
32+
func NewProxy(target string, skpver bool, cfgFile string, logger *zap.Logger) *Proxy {
3133
targetUrl, err := url.Parse(target)
3234
if err != nil {
3335
fmt.Printf("Unable to parse URL: %s\n", err.Error())
@@ -43,6 +45,12 @@ func NewProxy(target string, cfgFile string, logger *zap.Logger) *Proxy {
4345

4446
pxy := httputil.NewSingleHostReverseProxy(targetUrl)
4547

48+
if skpver {
49+
pxy.Transport = &http.Transport{
50+
TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, // client uses self-signed cert
51+
}
52+
}
53+
4654
proxy := &Proxy{
4755
target: targetUrl,
4856
proxy: pxy,
@@ -89,6 +97,11 @@ func main() {
8997
if tlsEnv == "true" {
9098
tlsEnvBool = true
9199
}
100+
skpverEnvBool := false
101+
skpverEnv := getEnv("SKIP_VERIFY", "false")
102+
if skpverEnv == "true" {
103+
skpverEnvBool = true
104+
}
92105
crtEnv := getEnv("CRT", "./example.crt")
93106
keyEnv := getEnv("KEY", "./example.key")
94107

@@ -97,9 +110,10 @@ func main() {
97110
cfg := flag.String("cfg", cfgEnv, "config file path.")
98111
backend := flag.String("backend", backendEnv, "backend server.")
99112
logout := flag.String("logout", logoutEnv, "log output stdout | ")
100-
tls := flag.Bool("tls", tlsEnvBool, "TLS Support (requires crt and key)")
113+
srvtls := flag.Bool("tls", tlsEnvBool, "TLS Support (requires crt and key)")
101114
crt := flag.String("crt", crtEnv, "Path to cert. (enable --tls)")
102115
key := flag.String("key", keyEnv, "Path to private key. (enable --tls")
116+
skpver := flag.Bool("skip-verify", skpverEnvBool, "Skip backend tls verify.")
103117
version := flag.Bool("version", false, "Display version.")
104118
flag.Parse()
105119

@@ -125,12 +139,12 @@ func main() {
125139
logger.Info("Requests proxied to Backend: " + *backend)
126140

127141
// proxy
128-
proxy := NewProxy(*backend, *cfg, logger)
142+
proxy := NewProxy(*backend, skpver, *cfg, logger)
129143

130144
// server
131145
http.HandleFunc("/", proxy.handle)
132146

133-
if *tls != true {
147+
if *srvtls != true {
134148
err = http.ListenAndServe(":"+*port, nil)
135149
if err != nil {
136150
fmt.Printf("Error starting proxy: %s\n", err.Error())

0 commit comments

Comments
 (0)