improve error handling around invalid Forward80To443 settings (#8496)

* If Forward80To443 is true, but not configured to listen on 443, fail to start the server with an error message.
* If Forward80To443 is false and LetsEncrypt is true, fail to start the server with an error message.
Этот коммит содержится в:
Jesse Hallam
2018-03-23 12:33:50 -04:00
коммит произвёл Christopher Speller
родитель 67c0efae1b
Коммит 1351874528
2 изменённых файлов: 14 добавлений и 1 удалений

Просмотреть файл

@@ -6,6 +6,7 @@ package app
import (
"context"
"crypto/tls"
"fmt"
"io"
"io/ioutil"
"net"
@@ -149,8 +150,10 @@ func (a *App) StartServer() error {
}
if *a.Config().ServiceSettings.Forward80To443 {
if host, _, err := net.SplitHostPort(addr); err != nil {
if host, port, err := net.SplitHostPort(addr); err != nil {
l4g.Error("Unable to setup forwarding: " + err.Error())
} else if port != "443" {
return fmt.Errorf(utils.T("api.server.start_server.forward80to443.enabled_but_listening_on_wrong_port"), port)
} else {
httpListenAddress := net.JoinHostPort(host, "http")
@@ -169,6 +172,8 @@ func (a *App) StartServer() error {
}()
}
}
} else if *a.Config().ServiceSettings.UseLetsEncrypt {
return errors.New(utils.T("api.server.start_server.forward80to443.disabled_while_using_lets_encrypt"))
}
a.Srv.didFinishListen = make(chan struct{})

Просмотреть файл

@@ -1954,6 +1954,14 @@
"id": "api.server.new_server.init.info",
"translation": "Server is initializing..."
},
{
"id": "api.server.start_server.forward80to443.disabled_while_using_lets_encrypt",
"translation": "Must enable Forward80To443 when using LetsEncrypt"
},
{
"id": "api.server.start_server.forward80to443.enabled_but_listening_on_wrong_port",
"translation": "Cannot forward port 80 to port 443 while listening on port %s: disable Forward80To443 if using a proxy server"
},
{
"id": "api.server.start_server.listening.info",
"translation": "Server is listening on %v"