From 27695c2a3dab4dfac6723a7dae0d73beaa565541 Mon Sep 17 00:00:00 2001 From: Simon Eisenmann Date: Fri, 18 Apr 2014 20:43:46 +0200 Subject: [PATCH 1/3] Also start up the default HTTPS handler. --- .gitignore | 4 ++++ src/app/spreed-speakfreely-server/main.go | 11 +++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index e6f51d70..651650c2 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,7 @@ vendor/* /.sass-cache /extra /src/i18n/*.mo +server.key +server.csr +server.crt +server.pem diff --git a/src/app/spreed-speakfreely-server/main.go b/src/app/spreed-speakfreely-server/main.go index 3eb8cc58..ecdbb333 100644 --- a/src/app/spreed-speakfreely-server/main.go +++ b/src/app/spreed-speakfreely-server/main.go @@ -121,7 +121,7 @@ func handleRoomView(room string, w http.ResponseWriter, r *http.Request) { w.Header().Set("Cache-Control", "private, max-age=0") // Detect if the request was made with SSL. - ssl := false + ssl := r.TLS != nil proto, ok := r.Header["X-Forwarded-Proto"] if ok { ssl = proto[0] == "https" @@ -357,7 +357,14 @@ func runner(runtime phoenix.Runtime) error { } } - runtime.DefaultHTTPHandler(r) + err = runtime.DefaultHTTPHandler(r) + if err != nil { + log.Println("Failed to create HTTP handler", err) + } + err = runtime.DefaultHTTPSHandler(r) + if err != nil { + log.Println("Failed to create HTTPS handler", err) + } return runtime.Start() } From 7c87ec3325e359e9fc5ea7d32db33c7c31a91a3e Mon Sep 17 00:00:00 2001 From: Simon Eisenmann Date: Fri, 18 Apr 2014 20:48:11 +0200 Subject: [PATCH 2/3] Added example configuration for https. --- server.conf.in | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server.conf.in b/server.conf.in index 07bf5f80..8c8388f9 100644 --- a/server.conf.in +++ b/server.conf.in @@ -10,6 +10,14 @@ listen = 127.0.0.1:8080 #stats = true # Provide stats API at /api/v1/stats (do not enable this in production or unprotected!). #pprofListen = 127.0.0.1:6060 # See http://golang.org/pkg/net/http/pprof/ for details +[https] +#listen = 127.0.0.1:8443 +#certificate = server.crt # Full path to certificate. +#key = server.key # Full path to key. +#minVersion = SSLv3 # Minimal supported encryption (SSLv3, TLSv1, TLSv1.1, TLSv1.2). +#readtimeout = 10 +#writetimeout = 10 + [app] #title = Spreed Speak Freely #ver = 1234 # version string to use for static resource From a6cdd389d4e781e4ed1e1fb7b27e023d9ea363cc Mon Sep 17 00:00:00 2001 From: Simon Eisenmann Date: Thu, 24 Apr 2014 15:56:13 +0200 Subject: [PATCH 3/3] Updated to final phoenix TLS API. --- src/app/spreed-speakfreely-server/main.go | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/app/spreed-speakfreely-server/main.go b/src/app/spreed-speakfreely-server/main.go index ecdbb333..57ff7896 100644 --- a/src/app/spreed-speakfreely-server/main.go +++ b/src/app/spreed-speakfreely-server/main.go @@ -357,14 +357,8 @@ func runner(runtime phoenix.Runtime) error { } } - err = runtime.DefaultHTTPHandler(r) - if err != nil { - log.Println("Failed to create HTTP handler", err) - } - err = runtime.DefaultHTTPSHandler(r) - if err != nil { - log.Println("Failed to create HTTPS handler", err) - } + runtime.DefaultHTTPHandler(r) + runtime.DefaultHTTPSHandler(r) return runtime.Start() }