From 277a226423c2eb157443b89a8c06046b1a931326 Mon Sep 17 00:00:00 2001 From: Mark McGranaghan Date: Wed, 19 Sep 2012 06:08:50 -0700 Subject: [PATCH] https server --- README | 2 +- src/xx-http-server.go | 4 ++-- src/xx-https-server.go | 26 ++++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 src/xx-https-server.go diff --git a/README b/README index 60a112a..b1f616c 100644 --- a/README +++ b/README @@ -54,7 +54,6 @@ gobyexample.com signups * listing files * tls server * tls client -* https server * https client * buffered io * tcp proxy @@ -80,6 +79,7 @@ gobyexample.com signups * blackfriday = program ideas +self-signed cert generator command line client for public json api redis server github webook receiver diff --git a/src/xx-http-server.go b/src/xx-http-server.go index da78c74..adf501e 100644 --- a/src/xx-http-server.go +++ b/src/xx-http-server.go @@ -1,10 +1,10 @@ package main -import ("net/http"; "io") +import "net/http" func hello(res http.ResponseWriter, req *http.Request) { res.Header().Set("Content-Type", "text/plain") - io.WriteString(res, "Hello From HTTP\n") + res.Write([]byte("Hello From HTTP\n")) } func main() { diff --git a/src/xx-https-server.go b/src/xx-https-server.go new file mode 100644 index 0000000..8416f05 --- /dev/null +++ b/src/xx-https-server.go @@ -0,0 +1,26 @@ +package main + +import "net/http" + +func handler(res http.ResponseWriter, req *http.Request) { + res.Header().Set("Content-Type", "text/plain") + res.Write([]byte("Hello from HTTPS\n")) +} + +func main() { + http.HandleFunc("/", handler) + err := http.ListenAndServeTLS(":5000", "/tmp/server.crt", "/tmp/server.key", nil) + if err != nil { panic(err) } +} + +// $ cd /tmp +// $ rm -f server.* +// $ openssl genrsa -des3 -out server.orig.key 2048 +// $ openssl rsa -in server.orig.key -out server.key +// $ openssl req -new -key server.key -out server.csr +// $ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt + +// $ go run src/xx-https-server.go + +// $ curl https://127.0.0.1:5000/ +// $ curl --insecure https://127.0.0.1:5000/