Hello Everyone,
Over the past few months, I’ve become increasingly interested in the ACME ecosystem.
One technology I find particularly fascinating is ACME CAA records, which I believe are significantly underutilized. Specifically, the account binding feature has great potential to enhance security. However, one of the main challenges is that setting up these records can be complex and often requires manual effort. To address this issue, I propose a delegation mechanism that could simplify the process.
In the current state, it’s already possible to automate the setup of CAA records. For example, the process could work as follows:
- A reverse proxy requesting certificates from a provider like Let's Encrypt first creates an account using the ACME API.
- It then adds the corresponding ACME CAA record with the newly created account included in the account binding tag.
- After verifying DNS propagation, the reverse proxy proceeds with certificate issuance as usual.
However, there is a challenge with this approach: the reverse proxy or ACME client requires direct access to modify the DNS records of the domain. This situation is similar to the one encountered when using DNS-01 validation for certificates. In that case, the ACME client only needs access to the _acme_challenge
subdomain, allowing for improved security through tools like acme-dns
or by using more restrictive DNS API permissions.
Applying a similar delegation mechanism for CAA records could strike a balance between security and usability. By limiting the required DNS access and incorporating such tools, the process would become both safer and more practical.
In this post, I wanted to hear your second opinions on this topic or learn from users who have implemented automatic CAA record creation.