{"id":13450361,"url":"https://github.com/janeczku/rancher-letsencrypt","last_synced_at":"2025-04-06T12:11:31.558Z","repository":{"id":5632027,"uuid":"50883892","full_name":"janeczku/rancher-letsencrypt","owner":"janeczku","description":":cow: Rancher service that obtains and manages free SSL certificates from the Let's Encrypt CA","archived":false,"fork":false,"pushed_at":"2019-06-14T22:06:26.000Z","size":2817,"stargazers_count":325,"open_issues_count":50,"forks_count":114,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-03-30T11:08:42.523Z","etag":null,"topics":["certificate","dns","letsencrypt","rancher","ssl-certificates"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/janeczku.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-02T01:09:59.000Z","updated_at":"2025-03-26T08:28:16.000Z","dependencies_parsed_at":"2022-09-11T15:03:04.703Z","dependency_job_id":null,"html_url":"https://github.com/janeczku/rancher-letsencrypt","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janeczku%2Francher-letsencrypt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janeczku%2Francher-letsencrypt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janeczku%2Francher-letsencrypt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janeczku%2Francher-letsencrypt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/janeczku","download_url":"https://codeload.github.com/janeczku/rancher-letsencrypt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247478324,"owners_count":20945266,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["certificate","dns","letsencrypt","rancher","ssl-certificates"],"created_at":"2024-07-31T07:00:33.941Z","updated_at":"2025-04-06T12:11:31.522Z","avatar_url":"https://github.com/janeczku.png","language":"Go","funding_links":[],"categories":["Go","Rancher 1.0"],"sub_categories":["Community projects 1.0"],"readme":"![Rancher + Let's Encrypt = Awesome Sauce](https://raw.githubusercontent.com/janeczku/rancher-letsencrypt/master/hero.png)\n\n# Let's Encrypt Certificate Manager for Rancher\n\n[![Latest Version](https://img.shields.io/github/release/janeczku/rancher-letsencrypt.svg?maxAge=8600)][release]\n[![Circle CI](https://circleci.com/gh/janeczku/rancher-letsencrypt.svg?style=shield\u0026circle-token=cd06c9a78ae3ef7b6c1387067c36360f62d97b7a)][circleci]\n[![Docker Pulls](https://img.shields.io/docker/pulls/janeczku/rancher-letsencrypt.svg?maxAge=8600)][hub]\n[![License](https://img.shields.io/github/license/janeczku/rancher-letsencrypt.svg?maxAge=8600)]()\n\n[release]: https://github.com/janeczku/rancher-letsencrypt/releases\n[circleci]: https://circleci.com/gh/janeczku/rancher-letsencrypt\n[hub]: https://hub.docker.com/r/janeczku/rancher-letsencrypt/\n\nA [Rancher](http://rancher.com/rancher/) service that obtains free SSL/TLS certificates from the [Let's Encrypt CA](https://letsencrypt.org/), adds them to Rancher's certificate store and manages renewal and propagation of updated certificates to load balancers.\n\n#### Requirements\n* Rancher Server \u003e= v1.5.0\n* If using a DNS-based challenge, existing account with one of the supported DNS providers:\n  * `Aurora DNS`\n  * `AWS Route 53`\n  * `Azure DNS`\n  * `CloudFlare`\n  * `DigitalOcean`\n  * `DNSimple`\n  * `Dyn`\n  * `Gandi`\n  * `NS1`\n  * `Ovh`\n  * `Vultr`\n\n* If using the HTTP challenge, a reverse proxy that routes `example.com/.well-known/acme-challenge` to `rancher-letsencrypt`. \n\n### How to use\n\nThis application is distributed via the [Rancher Community Catalog](https://github.com/rancher/community-catalog).\n\nEnable the Community Catalog under `Admin` =\u003e `Settings` in the Rancher UI.\nThen locate the `Let's Encrypt` template in the Catalog section of the UI and follow the instructions.\n\n### Storing certificate in shared storage volume\n\nBy default the created SSL certificate is stored in Rancher's certificate store for usage in Rancher load balancers.\n\nYou can specify a volume name to store account data, certificate and private key in a (host scoped) named Docker volume.\nTo share the certificates with other services you may specify a persistent storage driver (e.g. rancher-nfs).\n\nSee the README in the Rancher catalog for more information.\n\n### Provider specific usage\n\n#### AWS Route 53\n\nNote: 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).\n\nThe following IAM policy describes the minimum permissions required when using AWS Route 53 for domain authorization.    \nReplace `\u003cHOSTED_ZONE_ID\u003e` 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.\n\n```json\n{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"route53:GetChange\",\n                \"route53:ListHostedZonesByName\"\n            ],\n            \"Resource\": [\n                \"*\"\n            ]\n        },\n        {\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"route53:ChangeResourceRecordSets\"\n            ],\n            \"Resource\": [\n                \"arn:aws:route53:::hostedzone/\u003cHOSTED_ZONE_ID\u003e\"\n            ]\n        }\n    ]\n}\n```\n\n#### OVH\n\nFirst create your credentials on https://eu.api.ovh.com/createToken/ by filling out the form like this:\n\n- `Account ID`: Your OVH account ID\n- `Password`: Your password\n- `Script name`: letsencrypt\n- `Script description`: Letsencrypt for Rancher\n- `Validity`: Unlimited\n- `Rights`:\n  - GET /domain/zone/*\n  - POST /domain/zone/*\n  - DELETE /domain/zone/*\n\nThen deploy this service using the generated key, application secret and consumer key.\n\n#### HTTP\n\nIf you prefer not to use a DNS-based challenge or your provider is not supported, you can use the HTTP challenge.\nSimply choose `HTTP` from the list of providers.\nThen 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.\n\n![Rancher Load Balancer Let's Encrypt Targets](https://cloud.githubusercontent.com/assets/198988/22224463/0d1eb4aa-e1bf-11e6-955c-5f0d085ce8cd.png)\n\n### Building the image\n\n`make build \u0026\u0026 make image`\n\n### Contributions\n\nPR's welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaneczku%2Francher-letsencrypt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaneczku%2Francher-letsencrypt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaneczku%2Francher-letsencrypt/lists"}