I am trying to deploy an HTTPS web side on Heroku using Golang-martini.
Here is the list I already done:
- I already enable SSL endpoint in Heroku. (it is paid plugin services)
-
I already purchase my CA certificate key and it could be deploy Heroku. So,
heroku certs
shows: (note: the company name/endpoint address change)
Endpoint || Common Name(s) || Expires || Trusted
xxx.herokussl.com || server.sample.com || 2016-05-25 23:59 UTC || True
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:
-
If I set the
ListenAndServeTLS
port in 8443 (or something else) it will show error when I trying to test withcurl -vI https://server.sample.com
. It will show error as:"curl: (60) SSL certificate problem: Invalid certificate chain"
-
If I set the
ListenAndServeTLS
port to 443, it will show:"listen tcp :443: bind: permission denied"
Please advise how I deploy HTTPs with Go-martini on Heroku, thanks..