diff --git a/package.json b/package.json index 9c0c0da..f73724f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cosmos-server", - "version": "0.9.0-unstable", + "version": "0.9.0-unstable2", "description": "", "main": "test-server.js", "bugs": { diff --git a/src/httpServer.go b/src/httpServer.go index c21b4ef..f2abbb5 100644 --- a/src/httpServer.go +++ b/src/httpServer.go @@ -240,7 +240,6 @@ func InitServer() *mux.Router { baseMainConfig.HTTPConfig.ForceHTTPSCertificateRenewal = false utils.SetBaseMainConfig(baseMainConfig) - utils.Log("Saved new LETSENCRYPT TLS certificate") tlsCert = pub @@ -385,14 +384,14 @@ func InitServer() *mux.Router { } func StartServer() { + router := InitServer() + config := utils.GetMainConfig() HTTPConfig := config.HTTPConfig var tlsCert = HTTPConfig.TLSCert var tlsKey= HTTPConfig.TLSKey - router := InitServer() - if ( ( HTTPConfig.HTTPSCertificateMode == utils.HTTPSCertModeList["SELFSIGNED"] || diff --git a/src/utils/certificates.go b/src/utils/certificates.go index dae6f0a..fbac658 100644 --- a/src/utils/certificates.go +++ b/src/utils/certificates.go @@ -200,7 +200,7 @@ func DoLetsEncrypt() (string, string) { myUser.Registration = reg request := certificate.ObtainRequest{ - Domains: LetsEncryptValidOnly(GetAllHostnames(true, false)), + Domains: LetsEncryptValidOnly(GetAllHostnames(true, false), config.HTTPConfig.DNSChallengeProvider != ""), Bundle: true, } certificates, err := client.Certificate.Obtain(request) diff --git a/src/utils/utils.go b/src/utils/utils.go index 0df95ec..77393d1 100644 --- a/src/utils/utils.go +++ b/src/utils/utils.go @@ -140,8 +140,8 @@ func HTTPError(w http.ResponseWriter, message string, code int, userCode string) } func SetBaseMainConfig(config Config) { - LoadBaseMainConfig(config) SaveConfigTofile(config) + LoadBaseMainConfig(config) } func ReadConfigFromFile() Config { @@ -309,13 +309,13 @@ func RestartServer() { os.Exit(0) } -func LetsEncryptValidOnly(hostnames []string) []string { +func LetsEncryptValidOnly(hostnames []string, acceptWildcard bool) []string { wrongPattern := `^(localhost|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|.*\.local)$` re, _ := regexp.Compile(wrongPattern) var validDomains []string for _, domain := range hostnames { - if !re.MatchString(domain) && !strings.Contains(domain, "*") && !strings.Contains(domain, " ") && !strings.Contains(domain, ",") { + if !re.MatchString(domain) && (acceptWildcard || !strings.Contains(domain, "*")) && !strings.Contains(domain, " ") && !strings.Contains(domain, ",") { validDomains = append(validDomains, domain) } else { Error("Invalid domain found in URLs: " + domain + " it was removed from the certificate to not break Let's Encrypt", nil)