tls 활성화 할 때 파일이 존재하는 지 확인
This commit is contained in:
37
server.go
37
server.go
@ -109,9 +109,35 @@ func welcomeHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
var tls = flagx.String("tls", "", "")
|
var tls = flagx.String("tls", "", "")
|
||||||
var portptr = flagx.Int("port", 80, "")
|
var portptr = flagx.Int("port", 80, "")
|
||||||
|
|
||||||
|
func isTlsEnabled(fileout ...*string) bool {
|
||||||
|
if len(*tls) == 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
crtfile := *tls + ".crt"
|
||||||
|
if _, err := os.Stat(crtfile); os.IsNotExist(err) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
keyfile := *tls + ".key"
|
||||||
|
if _, err := os.Stat(keyfile); os.IsNotExist(err) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(fileout) > 0 {
|
||||||
|
*fileout[0] = crtfile
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(fileout) > 1 {
|
||||||
|
*fileout[1] = keyfile
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
// NewHTTPServer :
|
// NewHTTPServer :
|
||||||
func NewHTTPServerWithPort(serveMux *http.ServeMux, port int) *Server {
|
func NewHTTPServerWithPort(serveMux *http.ServeMux, port int) *Server {
|
||||||
if len(*tls) > 0 && port == 80 {
|
if isTlsEnabled() && port == 80 {
|
||||||
port = 443
|
port = 443
|
||||||
}
|
}
|
||||||
addr := fmt.Sprintf(":%d", port)
|
addr := fmt.Sprintf(":%d", port)
|
||||||
@ -130,7 +156,7 @@ func NewHTTPServerWithPort(serveMux *http.ServeMux, port int) *Server {
|
|||||||
func NewHTTPServer(serveMux *http.ServeMux) *Server {
|
func NewHTTPServer(serveMux *http.ServeMux) *Server {
|
||||||
|
|
||||||
// 시작시 자동으로 enable됨
|
// 시작시 자동으로 enable됨
|
||||||
if len(*tls) > 0 && *portptr == 80 {
|
if isTlsEnabled() && *portptr == 80 {
|
||||||
*portptr = 443
|
*portptr = 443
|
||||||
}
|
}
|
||||||
return NewHTTPServerWithPort(serveMux, *portptr)
|
return NewHTTPServerWithPort(serveMux, *portptr)
|
||||||
@ -198,12 +224,13 @@ func (server *Server) Start() error {
|
|||||||
defer proxyListener.Close()
|
defer proxyListener.Close()
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
if len(*tls) > 0 {
|
var crtfile string
|
||||||
crtfile := *tls + ".crt"
|
var keyfile string
|
||||||
keyfile := *tls + ".key"
|
if isTlsEnabled(&crtfile, &keyfile) {
|
||||||
logger.Println("tls enabled :", crtfile, keyfile)
|
logger.Println("tls enabled :", crtfile, keyfile)
|
||||||
err = server.httpserver.ServeTLS(proxyListener, crtfile, keyfile)
|
err = server.httpserver.ServeTLS(proxyListener, crtfile, keyfile)
|
||||||
} else {
|
} else {
|
||||||
|
logger.Println("tls disabled")
|
||||||
err = server.httpserver.Serve(proxyListener)
|
err = server.httpserver.Serve(proxyListener)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user