summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/graceful/server.go18
-rw-r--r--modules/setting/setting.go6
2 files changed, 22 insertions, 2 deletions
diff --git a/modules/graceful/server.go b/modules/graceful/server.go
index 30fb8cdffa..19ce8a866f 100644
--- a/modules/graceful/server.go
+++ b/modules/graceful/server.go
@@ -7,6 +7,7 @@ package graceful
import (
"crypto/tls"
+ "io/ioutil"
"net"
"os"
"strings"
@@ -99,12 +100,25 @@ func (srv *Server) ListenAndServeTLS(certFile, keyFile string, serve ServeFuncti
}
config.Certificates = make([]tls.Certificate, 1)
- var err error
- config.Certificates[0], err = tls.LoadX509KeyPair(certFile, keyFile)
+
+ certPEMBlock, err := ioutil.ReadFile(certFile)
if err != nil {
log.Error("Failed to load https cert file %s for %s:%s: %v", certFile, srv.network, srv.address, err)
return err
}
+
+ keyPEMBlock, err := ioutil.ReadFile(keyFile)
+ if err != nil {
+ log.Error("Failed to load https key file %s for %s:%s: %v", keyFile, srv.network, srv.address, err)
+ return err
+ }
+
+ config.Certificates[0], err = tls.X509KeyPair(certPEMBlock, keyPEMBlock)
+ if err != nil {
+ log.Error("Failed to create certificate from cert file %s and key file %s for %s:%s: %v", certFile, keyFile, srv.network, srv.address, err)
+ return err
+ }
+
return srv.ListenAndServeTLSConfig(config, serve)
}
diff --git a/modules/setting/setting.go b/modules/setting/setting.go
index 17c84d3d31..4183c203ed 100644
--- a/modules/setting/setting.go
+++ b/modules/setting/setting.go
@@ -554,6 +554,12 @@ func NewContext() {
Protocol = HTTPS
CertFile = sec.Key("CERT_FILE").String()
KeyFile = sec.Key("KEY_FILE").String()
+ if !filepath.IsAbs(CertFile) && len(CertFile) > 0 {
+ CertFile = filepath.Join(CustomPath, CertFile)
+ }
+ if !filepath.IsAbs(KeyFile) && len(KeyFile) > 0 {
+ KeyFile = filepath.Join(CustomPath, KeyFile)
+ }
case "fcgi":
Protocol = FCGI
case "fcgi+unix":