Question

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.

Was it helpful?

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.

OTHER TIPS

It's possible to serve HTTPS with clojure, but it's much more popular to put nginx or something like that in front of your ring server. If you can figure out how to configure jetty, though, run-jetty clearly supports SSL.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top