Heroku and SSL
I’ve recently had the joy of setting up SSL on heroku for tonightish. It was fairly straight forward, or as straight forward as anything dealing with DNS and SSL can be. The one big problem I ran into was that installing just our cert into heroku seemed to make browsers happy but api traffic, specifically Java, returned:
This was really confusing since the browsers could see, and show me, the chain of trust.
Then I found this blog post and remembered seeing SSL certificate labeled as self signed at the end of heroku certs:add output. You can also see this by running
$ cat STAR_mydomain_com.crt PositiveSSLCA2.crt AddTrustExternalCARoot.crt > STAR_mydomain_com_bundle.crt
heroku certs:update cert_bundle.crt mykey.key –app myapp
heroku certs:update fullCertChain.crt ../server_bare.key –app quiet-inlet-5383
Updating SSL Endpoint iwate-92.herokussl.com for quiet-inlet-43… done
Updated certificate details:
Common Name(s): tonightish.com
www.tonightish.com
Expires At: 2013-11-14 23:59 UTC
Issuer: /OU=Domain Control Validated/OU=EssentialSSL/CN=www.tonightish.com
Starts At: 2012-11-14 00:00 UTC
Subject: /OU=Domain Control Validated/OU=EssentialSSL/CN=www.tonightish.com
SSL certificate is verified by a root authority.
```