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 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 :
|
||||
func NewHTTPServerWithPort(serveMux *http.ServeMux, port int) *Server {
|
||||
if len(*tls) > 0 && port == 80 {
|
||||
if isTlsEnabled() && port == 80 {
|
||||
port = 443
|
||||
}
|
||||
addr := fmt.Sprintf(":%d", port)
|
||||
@ -130,7 +156,7 @@ func NewHTTPServerWithPort(serveMux *http.ServeMux, port int) *Server {
|
||||
func NewHTTPServer(serveMux *http.ServeMux) *Server {
|
||||
|
||||
// 시작시 자동으로 enable됨
|
||||
if len(*tls) > 0 && *portptr == 80 {
|
||||
if isTlsEnabled() && *portptr == 80 {
|
||||
*portptr = 443
|
||||
}
|
||||
return NewHTTPServerWithPort(serveMux, *portptr)
|
||||
@ -198,12 +224,13 @@ func (server *Server) Start() error {
|
||||
defer proxyListener.Close()
|
||||
|
||||
var err error
|
||||
if len(*tls) > 0 {
|
||||
crtfile := *tls + ".crt"
|
||||
keyfile := *tls + ".key"
|
||||
var crtfile string
|
||||
var keyfile string
|
||||
if isTlsEnabled(&crtfile, &keyfile) {
|
||||
logger.Println("tls enabled :", crtfile, keyfile)
|
||||
err = server.httpserver.ServeTLS(proxyListener, crtfile, keyfile)
|
||||
} else {
|
||||
logger.Println("tls disabled")
|
||||
err = server.httpserver.Serve(proxyListener)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user