Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Switch from HTTP to HTTPS in Beego

Tags:

http

https

go

beego

I try to switch from HTTP to HTTPS:

func handler(w http.ResponseWriter, req *http.Request) {
    w.Header().Set("Content-Type", "text/plain")
    w.Write([]byte("This is an example server.\n"))
}

func main() {
    http.HandleFunc("/", handler)
    log.Printf("About to listen on 8080. Go to https://127.0.0.1:8080/")
    err := http.ListenAndServeTLS(":8080", "cert.pem", "key.pem", nil)
    if err != nil {
        log.Fatal(err)
    }
}

And I am getting the following error:

crypto/tls: failed to parse key PEM data

My application is running in HTTP mode now and I want it to run in HTTPS mode.

Can anyone suggest how to make it work in HTTPS?

like image 572
Iranna Pattar Avatar asked May 24 '26 13:05

Iranna Pattar


1 Answers

The error indicates that the key.pem file cannot be parsed (could be invalid or lacking permission to read its content). Make sure the file is valid and sufficient permissions are set.

For testing purposes, use the generate_cert.go in the crypto/tls package to generate valid cert.pem and key.pem files.

To generate, run the following command (windows):

go run %GOROOT%/src/crypto/tls/generate_cert.go -host="127.0.0.1"

Linux:

go run $GOROOT/src/crypto/tls/generate_cert.go -host="127.0.0.1"
like image 74
icza Avatar answered May 27 '26 08:05

icza



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!