commit 3b8668d1445c426519d4aeea96477f3c80d75bf3
parent 2b619bf79c52c657103b0ee724d80f6ffd7f270d
Author: MTRNord <mtrnord1@gmail.com>
Date: Thu, 28 Jun 2018 20:06:56 +0200
Make letsencrypt work
Diffstat:
4 files changed, 38 insertions(+), 8 deletions(-)
diff --git a/.idea/usage.statistics.xml b/.idea/usage.statistics.xml
@@ -38,12 +38,24 @@
<session id="958628364">
<usages-collector id="statistics.file.extensions.edit">
<counts>
- <entry key="go" value="4" />
+ <entry key="go" value="39" />
+ <entry key="txt" value="8" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.edit">
<counts>
- <entry key="Go" value="4" />
+ <entry key="Go" value="39" />
+ <entry key="PLAIN_TEXT" value="8" />
+ </counts>
+ </usages-collector>
+ <usages-collector id="statistics.file.extensions.open">
+ <counts>
+ <entry key="go" value="1" />
+ </counts>
+ </usages-collector>
+ <usages-collector id="statistics.file.types.open">
+ <counts>
+ <entry key="Go" value="1" />
</counts>
</usages-collector>
</session>
diff --git a/cmd/root.go b/cmd/root.go
@@ -53,5 +53,6 @@ func Execute() {
func init() {
util.ServiceAccountFilePath = rootCmd.Flags().String("serviceAccountJson", "", "Enter a Path to the exported json file from your service account")
- util.HTTPSPort = rootCmd.Flags().Int("port", 8888, "Define the Port to listen on")
+ util.HTTPSPort = rootCmd.Flags().Int("https-port", 8888, "Define the SSL Port to listen on")
+ util.HTTPPort = rootCmd.Flags().Int("http-port", 8884, "Define the HTTP Port to listen on")
}
diff --git a/pkg/util/vars.go b/pkg/util/vars.go
@@ -3,3 +3,5 @@ package util
var ServiceAccountFilePath *string
var HTTPSPort *int
+
+var HTTPPort *int
diff --git a/pkg/webhook/webhook.go b/pkg/webhook/webhook.go
@@ -1,6 +1,7 @@
package webhook
import (
+ "crypto/rand"
"crypto/tls"
"encoding/json"
"fmt"
@@ -9,6 +10,7 @@ import (
"github.com/gorilla/mux"
df "github.com/leboncoin/dialogflow-go-webhook"
"golang.org/x/crypto/acme/autocert"
+ "golang.org/x/net/http2"
"log"
"net/http"
"strconv"
@@ -31,7 +33,12 @@ func Start() {
var r = mux.NewRouter()
r.HandleFunc("/webhook", MessagesEndPoint).Methods("POST")
- server := makeServerFromMux(r)
+ httpserver := makeServerFromMux(r)
+ httpsserver := makeServerFromMux(r)
+
+ httpsserver.Addr = ":" + strconv.Itoa(*util.HTTPPort)
+
+ go httpserver.ListenAndServe()
dataDir := "."
m = &autocert.Manager{
@@ -39,11 +46,19 @@ func Start() {
Cache: autocert.DirCache(dataDir),
}
- server.Addr = ":" + strconv.Itoa(*util.HTTPSPort)
- server.TLSConfig = &tls.Config{GetCertificate: m.GetCertificate}
+ tlsConfig := &tls.Config{
+ Rand: rand.Reader,
+ Time: time.Now,
+ NextProtos: []string{http2.NextProtoTLS, "http/1.1"},
+ MinVersion: tls.VersionTLS12,
+ GetCertificate: m.GetCertificate,
+ }
+
+ httpsserver.Addr = ":" + strconv.Itoa(*util.HTTPSPort)
+ httpsserver.TLSConfig = tlsConfig
- fmt.Printf("Starting HTTPS server on %s\n", server.Addr)
- err := server.ListenAndServeTLS("", "")
+ fmt.Printf("Starting HTTPS server on %s\n", httpsserver.Addr)
+ err := httpsserver.ListenAndServeTLS("", "")
if err != nil {
log.Fatalf("httpsSrv.ListendAndServeTLS() failed with %s", err)
}