Search code examples
httpsclojurecompojurering

How do you enable https and http->https redirects in ring / compojure


I am developing a RESTful app, for which I need to redirect requests coming in from an http address to it's https equivalent. I cannot seem to be able to enable https using ring/compojure.

Anyone have some useful tutorials and/or links? I haven't found any.

The documentation doesn't have anything useful either.


Solution

  • Its very simple. If you want to enable HTTPS support in your web app, just do the following:

    1. Generate a Java KeyStore(.jks) file using a linux tool called keytool.
    2. In the ring map of your project.clj file, add the following:
      {
        :ssl? true
        :ssl-port 8443
        :keystore "path to the jks file"
        :key-password "the keystore password"
      }
      
    3. Fire up the server. Now your web app is HTTPS enabled.

    I had a similar problem while I was trying to test my Sign-In using Social Media code which obviously had to authenticate over HTTPS and this did the trick for me.