@@ -17,10 +17,19 @@ import (
17
17
18
18
func runLetsEncrypt (listenAddr , domain , directory , email string , m http.Handler ) error {
19
19
20
+ // if HTTP Challenge enabled, needs to be serving on port 80. For TLSALPN needs 443
21
+ // due to docker port mapping this can't be checked programatically
22
+ // TODO: these are placeholders until we add options for each in settings with appropriate warning
23
+ enableHTTPChallenge := true
24
+ enableTLSALPNChallenge := false // set to false as this is default prior to using certmagic
25
+
20
26
magic := certmagic .NewDefault ()
21
27
myACME := certmagic .NewACMEManager (magic , certmagic.ACMEManager {
22
- Email : email ,
23
- Agreed : true ,
28
+ Email : email ,
29
+ Agreed : true ,
30
+ DisableHTTPChallenge : ! enableHTTPChallenge ,
31
+ DisableTLSALPNChallenge : ! enableTLSALPNChallenge ,
32
+ Storage : & certmagic.FileStorage {Path : directory },
24
33
})
25
34
26
35
magic .Issuer = myACME
@@ -33,14 +42,17 @@ func runLetsEncrypt(listenAddr, domain, directory, email string, m http.Handler)
33
42
34
43
tlsConfig := magic .TLSConfig ()
35
44
36
- go func () {
37
- log .Info ("Running Let's Encrypt handler on %s" , setting .HTTPAddr + ":" + setting .PortToRedirect )
38
- // all traffic coming into HTTP will be redirect to HTTPS automatically (LE HTTP-01 validation happens here)
39
- var err = runHTTP ("tcp" , setting .HTTPAddr + ":" + setting .PortToRedirect , myACME .HTTPChallengeHandler (http .HandlerFunc (runLetsEncryptFallbackHandler )))
40
- if err != nil {
41
- log .Fatal ("Failed to start the Let's Encrypt handler on port %s: %v" , setting .PortToRedirect , err )
42
- }
43
- }()
45
+ if enableHTTPChallenge {
46
+ go func () {
47
+ log .Info ("Running Let's Encrypt handler on %s" , setting .HTTPAddr + ":" + setting .PortToRedirect )
48
+ // all traffic coming into HTTP will be redirect to HTTPS automatically (LE HTTP-01 validation happens here)
49
+ var err = runHTTP ("tcp" , setting .HTTPAddr + ":" + setting .PortToRedirect , myACME .HTTPChallengeHandler (http .HandlerFunc (runLetsEncryptFallbackHandler )))
50
+ if err != nil {
51
+ log .Fatal ("Failed to start the Let's Encrypt handler on port %s: %v" , setting .PortToRedirect , err )
52
+ }
53
+ }()
54
+ }
55
+
44
56
return runHTTPSWithTLSConfig ("tcp" , listenAddr , tlsConfig , context2 .ClearHandler (m ))
45
57
}
46
58
0 commit comments