tls 활성화 할 때 파일이 존재하는 지 확인

This commit is contained in:
2024-07-08 15:26:47 +09:00
parent 18d284a4ea
commit fa3b0c070a

View File

@ -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)
} }