auto-ssl / auto-ssl/lua-resty-auto-ssl

combine certificates for multiple domains into one

Open
#36 3 comments 3 reactions 0 assignees View on GitHub
enhancement
Dominant language
Lua
Stars
2k
Forks
184
PR merge metrics
No merged PRs in 30d

Description

Let's Encrypt imposes (quite reasonable) [rate limits](https://letsencrypt.org/docs/rate-limits/) on the issuance of new certificates. Currently we request one certificate for each domain. This means that `images.autossl.org` and `secure.autossl.org` both get their own certificate. The number of certificates which can be issued like this is 25 per week - effectively limiting us to 25 subdomains.

The official way of dealing with this is combining the subdomains (up to 100) into one certificate. Dehydrated has support for this via a [`domains.txt`-file](https://github.com/lukas2511/dehydrated/blob/master/docs/domains_txt.md). To implement this here, I'd suggest grouping domains by their main domain name (according to the [public suffix list](https://publicsuffix.org/). Each group would get one `domains.txt` and `config`-file (with `DOMAINS_TXT` set). Dehydrated is then called with `--config` instead of `--domain`.

Combing the certificates gives us 100 subdomains instead of 25. If that is still too low, we could repeat this process for 25 subdomain-groups, giving us 2500 subdomains for each domain.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing how the current per-domain certificate request and its config are generated. Read dehydrated's domains.txt documentation and investigate grouping domains by the public suffix list, with one domains.txt and config per group. Done means grouped certificates are requested and renewed without exceeding the intended domain limits.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua, nginx
Domain
infrastructure, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.