From 5b8b145577c2f54cbc58e0e2a76c6cd7b7765b79 Mon Sep 17 00:00:00 2001 From: fatedier Date: Sun, 5 Jun 2022 17:15:28 +0800 Subject: [PATCH] Use auto generated certificates if plugin_key_path and plugin_crt_path are empty for plugin https2https and https2http. (#2968) --- pkg/plugin/client/https2http.go | 18 +++++++++++------- pkg/plugin/client/https2https.go | 20 ++++++++++++-------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/pkg/plugin/client/https2http.go b/pkg/plugin/client/https2http.go index 81806e39..5aec067b 100644 --- a/pkg/plugin/client/https2http.go +++ b/pkg/plugin/client/https2http.go @@ -23,6 +23,7 @@ import ( "net/http/httputil" "strings" + "github.com/fatedier/frp/pkg/transport" frpNet "github.com/fatedier/frp/pkg/util/net" ) @@ -58,12 +59,6 @@ func NewHTTPS2HTTPPlugin(params map[string]string) (Plugin, error) { } } - if crtPath == "" { - return nil, fmt.Errorf("plugin_crt_path is required") - } - if keyPath == "" { - return nil, fmt.Errorf("plugin_key_path is required") - } if localAddr == "" { return nil, fmt.Errorf("plugin_local_addr is required") } @@ -96,7 +91,16 @@ func NewHTTPS2HTTPPlugin(params map[string]string) (Plugin, error) { Handler: rp, } - tlsConfig, err := p.genTLSConfig() + var ( + tlsConfig *tls.Config + err error + ) + if crtPath != "" || keyPath != "" { + tlsConfig, err = p.genTLSConfig() + } else { + tlsConfig, err = transport.NewServerTLSConfig("", "", "") + tlsConfig.InsecureSkipVerify = true + } if err != nil { return nil, fmt.Errorf("gen TLS config error: %v", err) } diff --git a/pkg/plugin/client/https2https.go b/pkg/plugin/client/https2https.go index 159ed398..cefa2030 100644 --- a/pkg/plugin/client/https2https.go +++ b/pkg/plugin/client/https2https.go @@ -23,6 +23,7 @@ import ( "net/http/httputil" "strings" + "github.com/fatedier/frp/pkg/transport" frpNet "github.com/fatedier/frp/pkg/util/net" ) @@ -58,12 +59,6 @@ func NewHTTPS2HTTPSPlugin(params map[string]string) (Plugin, error) { } } - if crtPath == "" { - return nil, fmt.Errorf("plugin_crt_path is required") - } - if keyPath == "" { - return nil, fmt.Errorf("plugin_key_path is required") - } if localAddr == "" { return nil, fmt.Errorf("plugin_local_addr is required") } @@ -101,7 +96,16 @@ func NewHTTPS2HTTPSPlugin(params map[string]string) (Plugin, error) { Handler: rp, } - tlsConfig, err := p.genTLSConfig() + var ( + tlsConfig *tls.Config + err error + ) + if crtPath != "" || keyPath != "" { + tlsConfig, err = p.genTLSConfig() + } else { + tlsConfig, err = transport.NewServerTLSConfig("", "", "") + tlsConfig.InsecureSkipVerify = true + } if err != nil { return nil, fmt.Errorf("gen TLS config error: %v", err) } @@ -127,7 +131,7 @@ func (p *HTTPS2HTTPSPlugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, e } func (p *HTTPS2HTTPSPlugin) Name() string { - return PluginHTTPS2HTTP + return PluginHTTPS2HTTPS } func (p *HTTPS2HTTPSPlugin) Close() error {