mirror of https://github.com/statping/statping
49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
![]() |
package handlers
|
||
|
|
||
|
import (
|
||
|
"crypto/tls"
|
||
|
"fmt"
|
||
|
"github.com/statping/statping/utils"
|
||
|
"net/http"
|
||
|
)
|
||
|
|
||
|
func startServer(host string) {
|
||
|
httpServer = &http.Server{
|
||
|
Addr: host,
|
||
|
WriteTimeout: timeout,
|
||
|
ReadTimeout: timeout,
|
||
|
IdleTimeout: timeout,
|
||
|
Handler: router,
|
||
|
}
|
||
|
httpServer.SetKeepAlivesEnabled(false)
|
||
|
if err := httpServer.ListenAndServe(); err != nil {
|
||
|
httpError <- err
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func startSSLServer(ip string) {
|
||
|
cfg := &tls.Config{
|
||
|
MinVersion: tls.VersionTLS12,
|
||
|
CurvePreferences: []tls.CurveID{tls.CurveP521, tls.CurveP384, tls.CurveP256},
|
||
|
PreferServerCipherSuites: true,
|
||
|
CipherSuites: []uint16{
|
||
|
tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
|
||
|
tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
|
||
|
tls.TLS_RSA_WITH_AES_256_GCM_SHA384,
|
||
|
tls.TLS_RSA_WITH_AES_256_CBC_SHA,
|
||
|
},
|
||
|
}
|
||
|
srv := &http.Server{
|
||
|
Addr: fmt.Sprintf("%v:%v", ip, 443),
|
||
|
Handler: router,
|
||
|
TLSConfig: cfg,
|
||
|
TLSNextProto: make(map[string]func(*http.Server, *tls.Conn, http.Handler), 0),
|
||
|
WriteTimeout: timeout,
|
||
|
ReadTimeout: timeout,
|
||
|
IdleTimeout: timeout,
|
||
|
}
|
||
|
if err := srv.ListenAndServeTLS(utils.Directory+"/server.crt", utils.Directory+"/server.key"); err != nil {
|
||
|
httpError <- err
|
||
|
}
|
||
|
}
|