Dehydrated: Letsencrypt/acme client implemented as a shell-script

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. dehydrated

    letsencrypt/acme client implemented as a shell-script – just add water

    One of the biggest benefits of dehydrated is that it doesn't try to integrate with a DNS provider on its own. It just calls a hook, which can be implemented with a simple shell script[1]. The most popular third-party integration is lexicon[2], though you're not required to use Lexicon. (e.g. you're free to use awscli, gcloud, linode-cli, etc. to do the actual DNS record manipulation)

    This means its dependencies footprint is much smaller, and allows you to do things that can be a nightmare to configure with Certbot or other alternatives. For example, at one of the scenarios I had to set up was that we had to query a credential via HashiCorp Vault, which is then used to cURL into an API endpoint. The shell script in total was pretty short (< 100 LOC) and it worked extremely well.

    [1]: https://github.com/dehydrated-io/dehydrated/blob/master/docs...

    [2]: https://github.com/AnalogJ/lexicon

  2. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  3. lego

    Let's Encrypt/ACME client and library written in Go

    Self contained but hardly a tiny supply chain attack surface: https://github.com/go-acme/lego/blob/master/go.sum

  4. acme.sh

    A pure Unix shell script implementing ACME client protocol

    A very relevant question. Acme.sh, a similar shell script ACME client, had a remote code execution problem last year.

    https://github.com/acmesh-official/acme.sh/issues/4668

  5. lexicon

    Manipulate DNS records on various DNS providers in a standardized way.

    One of the biggest benefits of dehydrated is that it doesn't try to integrate with a DNS provider on its own. It just calls a hook, which can be implemented with a simple shell script[1]. The most popular third-party integration is lexicon[2], though you're not required to use Lexicon. (e.g. you're free to use awscli, gcloud, linode-cli, etc. to do the actual DNS record manipulation)

    This means its dependencies footprint is much smaller, and allows you to do things that can be a nightmare to configure with Certbot or other alternatives. For example, at one of the scenarios I had to set up was that we had to query a credential via HashiCorp Vault, which is then used to cURL into an API endpoint. The shell script in total was pretty short (< 100 LOC) and it worked extremely well.

    [1]: https://github.com/dehydrated-io/dehydrated/blob/master/docs...

    [2]: https://github.com/AnalogJ/lexicon

  6. jq

    Command-line JSON processor

  7. uacme

    ACMEv2 client written in plain C with minimal dependencies (by ndilieto)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Why Certificate Lifecycle Automation Matters

    4 projects | news.ycombinator.com | 30 Jan 2024
  • letsencrypt with noip free domain?

    2 projects | /r/selfhosted | 10 Apr 2023
  • Google Pushing For 90 Day SSL/TLS Certificates - Time For Automation

    2 projects | /r/sysadmin | 25 Mar 2023
  • How will you handle 90 day SSL expiration?

    3 projects | /r/sysadmin | 22 Mar 2023
  • trying to copy a signed xml using get-content and set-content. It works when I get-content from the original file, or a get-content and then set-content created version of the file... but if I try to store the file in the script itself to set-content later, no dice. Why not?

    1 project | /r/PowerShell | 13 Sep 2022