sslherokugomartini

Deploy golang martini HTTPS on Heroku server


I am trying to deploy an HTTPS web side on Heroku using Golang-martini.

Here is the list I already done:

And here is my code sample in Golang.

m := martini.Classic()
martini.Env = martini.Prod
m.Use(secure.Secure(secure.Options{
    SSLRedirect: false,
}))


//Because I want to keep HTTP and HTTPs enable.
go func() {
    if err := http.ListenAndServe(":"+os.Getenv("PORT"), m); err != nil {
        log.Println(err)
    }
}()

// HTTPS: 
if err := http.ListenAndServeTLS(":443", "server.crt", "server.key", m); err != nil {
    log.Println(err)
}

Here are the my Questions:

Please advise how I deploy HTTPs with Go-martini on Heroku, thanks..


Solution

  • Your app won't serve HTTPS if you are deploying to Heroku. The SSL connection will be terminated at the load balancers of Heroku and plain HTTP traffic will be forwarded to your application.

    So all you have to do is to listen on HTTP on the Port from the environment.