Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/poundifdef/certmaster
Automatically renew certs and install to destinations
https://github.com/poundifdef/certmaster
acme-client certificate dns letsencrypt
Last synced: about 1 month ago
JSON representation
Automatically renew certs and install to destinations
- Host: GitHub
- URL: https://github.com/poundifdef/certmaster
- Owner: poundifdef
- License: agpl-3.0
- Created: 2023-11-18T20:34:00.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-29T16:45:15.000Z (5 months ago)
- Last Synced: 2024-11-13T09:41:29.524Z (about 1 month ago)
- Topics: acme-client, certificate, dns, letsencrypt
- Language: Go
- Homepage:
- Size: 1.72 MB
- Stars: 79
- Watchers: 2
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-hcloud - certmaster
README
# Certmaster
Certmaster automates the process of renewing and installing SSL certificates.
1. Creates an SSL cert from Let's Encrypt
2. Validates certs using DNS
3. Uploads or installs SSL certs to multiple destinations## Supported DNS
Certmaster uses the excellent [go-acme/lego](https://github.com/go-acme/lego) repository
to generate certificates and automate DNS validation. They support 100+ providers, which are
listed [here](https://go-acme.github.io/lego/dns/).## Supported Destinations
1. Email
2. SFTP
3. Hetzner Load Balancer## Config
Start with the example [config.json](config.json) and modify it.
- To configure DNS providers, create JSON of the form:
``` json
{
"provider": "route53",
"AWS_ACCESS_KEY_ID": "ACCESS_KEY_ID",
"AWS_SECRET_ACCESS_KEY": "SECRET_KEY"
}
```Here, `provider` is the provider name from `go-acme/lego`'s documentation. The rest of the
fields are configs specific to your DNS provider.- Similarly, you configure destinations with all details required to upload.
## Usage
To update the certificate, just run:
```
$ ./certmaster create --config config.json
```### AWS Lambda
The Docker file is to use with AWS Lambda. When you invoke the function,
you send the same JSON payload as the normal config.