Prepare the private key and self-signed X-509 certificate. For this purpose, the OpenSSL utility could be used. By executing the command openssl genrsa -out server.key 2048, the private key derived with the use of an RSA algorithm is generated to the file server.key. Based on this private key, the X-509 certificate could be generated by calling openssl req -new -x509 -sha256 -key server.key -out server.crt -days 365. The server.crt file is created.
package main
import (
"fmt"
"net/http"
)
type SimpleHTTP struct{}
func (s SimpleHTTP) ServeHTTP(rw http.ResponseWriter, r *http.Request) {
fmt.Fprintln(rw, "Hello world")
}
func main() {
fmt.Println("Starting HTTP server on port 8080")
// Eventually you can use
// http.ListenAndServe(":8080", SimpleHTTP{})
s := &http.Server{Addr: ":8080", Handler: SimpleHTTP{}}
if err := s.ListenAndServeTLS("server.crt", "server.key"); err != nil {
panic(err)
}
}