aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2021-03-08 17:22:46 +0100
committerAlex Auvolat <alex@adnab.me>2021-09-28 17:41:18 +0200
commitbc40bed6e561c034654d757f2514e9e24be388ea (patch)
tree63d650ba1800bdcb6e183240550f456fea70bc21
parent54d085f7f3f0a8f6da83cc599c19c593b1412dc3 (diff)
downloadalps-bc40bed6e561c034654d757f2514e9e24be388ea.tar.gz
alps-bc40bed6e561c034654d757f2514e9e24be388ea.zip
Implement "skip TLS verification" as command line argument
-rw-r--r--cmd/alps/main.go1
-rw-r--r--imap.go3
-rw-r--r--server.go11
-rw-r--r--smtp.go3
4 files changed, 11 insertions, 7 deletions
diff --git a/cmd/alps/main.go b/cmd/alps/main.go
index 5a00957..b38ac59 100644
--- a/cmd/alps/main.go
+++ b/cmd/alps/main.go
@@ -34,6 +34,7 @@ func main() {
flag.StringVar(&options.Theme, "theme", "", "default theme")
flag.StringVar(&addr, "addr", ":1323", "listening address")
flag.BoolVar(&options.Debug, "debug", false, "enable debug logs")
+ flag.BoolVar(&options.SkipTlsVerification, "skiptlsverification", false, "skip TLS hostname verification")
flag.StringVar(&loginKey, "login-key", "", "Fernet key for login persistence")
flag.Usage = func() {
diff --git a/imap.go b/imap.go
index 7554331..978363a 100644
--- a/imap.go
+++ b/imap.go
@@ -1,6 +1,7 @@
package alps
import (
+ "crypto/tls"
"fmt"
"github.com/emersion/go-imap"
@@ -16,7 +17,7 @@ func (s *Server) dialIMAP() (*imapclient.Client, error) {
var c *imapclient.Client
var err error
if s.imap.tls {
- c, err = imapclient.DialTLS(s.imap.host, nil)
+ c, err = imapclient.DialTLS(s.imap.host, &tls.Config{InsecureSkipVerify: s.Options.SkipTlsVerification})
if err != nil {
return nil, fmt.Errorf("failed to connect to IMAPS server: %v", err)
}
diff --git a/server.go b/server.go
index 17018c1..b005ebc 100644
--- a/server.go
+++ b/server.go
@@ -365,11 +365,12 @@ func handleUnauthenticated(next echo.HandlerFunc, ctx *Context) error {
}
type Options struct {
- Upstreams []string
- Theme string
- ThemesPath string
- Debug bool
- LoginKey *fernet.Key
+ Upstreams []string
+ Theme string
+ ThemesPath string
+ Debug bool
+ SkipTlsVerification bool
+ LoginKey *fernet.Key
}
// New creates a new server.
diff --git a/smtp.go b/smtp.go
index 5e178f2..4c720e2 100644
--- a/smtp.go
+++ b/smtp.go
@@ -1,6 +1,7 @@
package alps
import (
+ "crypto/tls"
"fmt"
"github.com/emersion/go-smtp"
@@ -14,7 +15,7 @@ func (s *Server) dialSMTP() (*smtp.Client, error) {
var c *smtp.Client
var err error
if s.smtp.tls {
- c, err = smtp.DialTLS(s.smtp.host, nil)
+ c, err = smtp.DialTLS(s.smtp.host, &tls.Config{InsecureSkipVerify: s.Options.SkipTlsVerification})
if err != nil {
return nil, fmt.Errorf("failed to connect to SMTPS server: %v", err)
}