Skip to content
Haskell web service that redirects all traffic from HTTP to HTTPS
Haskell Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This Haskell application (& resulting 7MB Docker image) is a minimalist web-server for the single purpose of redirecting to HTTPS. The easiest way to run this application is to use the Docker image on Dockerhub.

docker pull fpco/rdr2tls
docker run -i -t --rm -p 8080:8080 fpco/rdr2tls

This runs the service on port 8080. Any requests HTTP requests to port 8080 get redirected to HTTPS.

% curl -v 'http://localhost:8080/remote/worker?pants=YES'
* Hostname was NOT found in DNS cache
*   Trying
* Connected to localhost ( port 8080 (#0)
> GET /remote/worker?pants=YES HTTP/1.1
> User-Agent: curl/7.38.0
> Host: localhost:8080
> Accept: */*
< HTTP/1.1 301 Moved Permanently
< Transfer-Encoding: chunked
< Date: Wed, 06 May 2015 00:31:16 GMT
* Server Warp/3.0.13 is not blacklisted
< Server: Warp/3.0.13
< Location: https://localhost/remote/worker?pants=YES
* Connection #0 to host localhost left intact

Use a different port or domain:

docker run -i -t --rm fpco/rdr2tls rdr2tls --help
docker run -i -t --rm -p 4000:4000 fpco/rdr2tls \
    rdr2tls -p 4000 -P

This would run rdr2tls on port 4000 and redirect all traffic to

Building RDR2TLS

This application is built with Haskell. It was built using GHC 7.8 & Cabal 1.20. Feel free to use other versions if you like. The basic build consists of initiating a cabal sandbox & then installing with cabal.

cabal sandbox init
cabal install
./.cabal-sandbox/bin/rdr2tls --help
You can’t perform that action at this time.