• Stars
    star
    326
  • Rank 129,027 (Top 3 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created almost 9 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🐮 Rancher service that obtains and manages free SSL certificates from the Let's Encrypt CA

Rancher + Let's Encrypt = Awesome Sauce

Let's Encrypt Certificate Manager for Rancher

Latest Version Circle CI Docker Pulls License

A Rancher service that obtains free SSL/TLS certificates from the Let's Encrypt CA, adds them to Rancher's certificate store and manages renewal and propagation of updated certificates to load balancers.

Requirements

  • Rancher Server >= v1.5.0

  • If using a DNS-based challenge, existing account with one of the supported DNS providers:

    • Aurora DNS
    • AWS Route 53
    • Azure DNS
    • CloudFlare
    • DigitalOcean
    • DNSimple
    • Dyn
    • Gandi
    • NS1
    • Ovh
    • Vultr
  • If using the HTTP challenge, a reverse proxy that routes example.com/.well-known/acme-challenge to rancher-letsencrypt.

How to use

This application is distributed via the Rancher Community Catalog.

Enable the Community Catalog under Admin => Settings in the Rancher UI. Then locate the Let's Encrypt template in the Catalog section of the UI and follow the instructions.

Storing certificate in shared storage volume

By default the created SSL certificate is stored in Rancher's certificate store for usage in Rancher load balancers.

You can specify a volume name to store account data, certificate and private key in a (host scoped) named Docker volume. To share the certificates with other services you may specify a persistent storage driver (e.g. rancher-nfs).

See the README in the Rancher catalog for more information.

Provider specific usage

AWS Route 53

Note: If you have both a private and public zone in Route53 for the domain, you need to run the service configured with public DNS resolvers (this is now the default).

The following IAM policy describes the minimum permissions required when using AWS Route 53 for domain authorization.
Replace <HOSTED_ZONE_ID> with the ID of the hosted zone that encloses the domain(s) for which you are going to obtain certificates. You may use a wildcard (*) in place of the ID to make this policy work with all of the hosted zones associated with an AWS account.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "route53:GetChange",
                "route53:ListHostedZonesByName"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "route53:ChangeResourceRecordSets"
            ],
            "Resource": [
                "arn:aws:route53:::hostedzone/<HOSTED_ZONE_ID>"
            ]
        }
    ]
}

OVH

First create your credentials on https://eu.api.ovh.com/createToken/ by filling out the form like this:

  • Account ID: Your OVH account ID
  • Password: Your password
  • Script name: letsencrypt
  • Script description: Letsencrypt for Rancher
  • Validity: Unlimited
  • Rights:
    • GET /domain/zone/*
    • POST /domain/zone/*
    • DELETE /domain/zone/*

Then deploy this service using the generated key, application secret and consumer key.

HTTP

If you prefer not to use a DNS-based challenge or your provider is not supported, you can use the HTTP challenge. Simply choose HTTP from the list of providers. Then make sure that HTTP requests to domain.com/.well-known/acme-challenge are forwarded to port 80 of the rancher-letsencrypt service, e.g. by configuring a Rancher load balancer accordingly. If you are using another reverse proxy (e.g. Nginx) you need to make sure it passed the original host header through to the backend.

Rancher Load Balancer Let's Encrypt Targets

Building the image

make build && make image

Contributions

PR's welcome!

More Repositories

1

calibre-web

📚 Web app for browsing, reading and downloading eBooks stored in a Calibre database
Python
11,592
star
2

go-dnsmasq

🐬 Lightweight caching DNS server/forwarder
Go
401
star
3

haproxy-acme-validation-plugin

🍀 Zero-downtime ACME / Let's Encrypt certificate issuing for HAProxy
Shell
293
star
4

docker-machine-vultr

Ⓜ️ Docker Machine driver for Vultr Cloud
Go
193
star
5

docker-dropbox

🐳 Dropbox in a Docker image. This works.
Shell
148
star
6

go-ipset

🔥 Go bindings for the IPtables ipset http://ipset.netfilter.org userspace utility
Go
119
star
7

docker-alpine-kubernetes

:octocat: Alpine Linux base image with support for DNS service discovery in Docker clusters
Shell
112
star
8

keepalived-ingress-vip

💓 HA/IP failover solution for on-premises and bare-metal Kubernetes clusters.
Smarty
53
star
9

powerdns_exporter

📈 Prometheus metrics exporter for PowerDNS
Go
34
star
10

go-rancher-gen

🐮 Generate configuration files using templates and Rancher Metadata
Go
32
star
11

docker-calibre-web

🐳 Docker image for Calibre Web
Shell
32
star
12

terraform-rancheros-vmware

HCL
23
star
13

go-spinner

GO spinner / activity indicator for command line applications
Go
21
star
14

docker-nfs-ganesha

🐳 🚢 NFS-Ganesha Docker Image
Shell
16
star
15

docker-shipyard-armv7

🐳 Shipyard Docker management for Raspberry Pi 2 / Scaleway C1
JavaScript
11
star
16

docker-alpine-haproxy

🐳 Haproxy docker image based on Alpine Linux
Makefile
10
star
17

go-redwall

🔥 Dockerized distributed dynamic firewall daemon with Redis backend
Go
8
star
18

Docker-RemoteSyslog2

🐳 Forward server or container logs to remote syslog collectors
Shell
8
star
19

meta-k3s

Shell
7
star
20

stdemuxerhook

🔀 A hook for logrus logger that demuxes logs to stderr and stdout based on severity
Go
6
star
21

datadog-rancher-init

🐶 Sidekick container image for running Datadog Agent in Rancher environments
Python
6
star
22

rancher-v2-logging

6
star
23

habitat-plans

Shell
4
star
24

ansible-k3s-2-node-ha

Ansible playbook for setting up a 2-node, high available k3s cluster using an embedded replicated database
Shell
4
star
25

tiny-operators-catalog

Shell
3
star
26

meta-k3s-odroid-c2

Shell
2
star
27

go-ipintel

👮 Go wrapper for the getipintel.net proxy detection API
Go
2
star
28

fleet-demo

2
star
29

nginx-php55

🐳 Nginx/PHP5.5/NodeJS/Ruby Docker image based on CentOS 7
Shell
1
star
30

k8s-nginx-demo

1
star
31

docker-armhf

🐳 Docker in Docker for ARMv7!
Shell
1
star
32

dotfiles

Shell
1
star
33

docker-selfoss-nginx

🐳 Selfoss - http://selfoss.aditu.de Docker image
PHP
1
star
34

helm-charts

Public Helm chart repository
1
star
35

harvester-rke2-cluster-template

Example RKE2 cluster template for Harvester IaaS
1
star
36

k3s-fleet-demos

1
star
37

ndppd-alpine

Shell
1
star
38

blinken-k8s

Shell
1
star
39

docker-debian-nginx

🐳 Nginx 1.8 (Dotdeb) image based on Debian Wheezy
Shell
1
star
40

docker-debian-s6

🐳 Official debian images pimped with the s6 process supervisor
Shell
1
star
41

rancher-hello-world

Python
1
star