Moving an HTTP server to HTTPS
Once the web application development is over, it's likely that we will deploy it to the servers. While deploying, it is always recommended to run the web application on an HTTPS protocol rather than HTTP, especially for the servers that are publicly exposed. In this recipe, we will learn how we can do this in Go.
How to do it…
- Create
https-server.go
, where we will define a handler that will just writeHello World!
to an HTTP response stream for all HTTPS requests, as follows:
package main import ( "fmt" "log" "net/http" ) const ( CONN_HOST = "localhost" CONN_PORT = "8443" HTTPS_CERTIFICATE = "domain.crt" DOMAIN_PRIVATE_KEY = "domain.key" ) func helloWorld(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello World!") } func main() { http.HandleFunc("/", helloWorld) err := http.ListenAndServeTLS(CONN_HOST+":"+CONN_PORT, HTTPS_CERTIFICATE, DOMAIN_PRIVATE_KEY, nil) if err != nil { log.Fatal("error starting https server...