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