riccardomanfrin

riccardomanfrin

zerossl - native acmev2 http-01 client for zerossl

Hi,

I made this simple weekend project for not having to integrate with things like certibot or acmev2.sh (which btw the project is heavily inspired from).

Besides the crude acmev2 ciphering exchange boilerplate, the library also automatically renews the certificate before the expiration and notifies the application to give it the opportunity to restart anything based on the just renewed certificate.

In short, integrating this library makes an application run on valid certificates indefinitely.

I suppose it would be cool to add letsencrypt and friends .. anyhow, link:

https://github.com/riccardomanfrin/zerossl

The http port to serve the well-known token is hardcoded to port 80, so you need permissions to open port 80 on your device:

sudo echo -en "net.ipv4.ip_unprivileged_port_start=80" > /etc/sysctl.d/port80.conf

If it gets good feedback I can add a config to use a different port so that users can NAT requests to a less contended, non privileged port like 8080 etc..

Cheers & happy new year

Most Liked

hauleth

hauleth

Some thoughts/questions:

  • Why not support multiple certificates?
  • As it implements ACMEv2, then why it is limited only to ZeroSSL provider? Why not support any host.
  • Why it listens on port 80 on it’s own instead of allowing user to start this on their own which would allow starting this behind reverse proxy or with socket activation to not need extra privileges.
riccardomanfrin

riccardomanfrin

Fwiw, i’ve added Letsencrypt support and configurable port/address.

I’ve had a shallow check at the two projects you reported. I suppose they are fine but they bring in quite few elefants in the room (phoenix/ecto/cowboy/tesla/opentelemetry).

Also, the second one doesn’t seem to manage renewal for you, and you’ll have to get into orders/challenges etc.. with mine it’s as easy as setting the 4 lines of config and go.

Where Next?

Trending in Announcing Top

bluzky
You may know https://ui.shadcn.com/, a UI component library for React. I really love it’s design style and components. I’ve built some co...
385 14863 120
New
GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
shahryarjb
The Chelekom project is a library of Phoenix and LiveView components generated via Mix tasks to fit developer needs seamlessly. One of i...
New
kip
Following on from my CLDR lbraries I started work on Unicode transforms. But like everything related to CLDR there is a lot of yak-shavin...
New
anuaralfetahe
Hello Published a new library - ProcessHub! ProcessHub is a library designed to manage process distribution within the Elixir cluster. ...
New
kip
Localize is the next generation localisation library for Elixir. Think of it as ex_cldr version 3.0. The first version will be released ...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
kip
Localize is the next generation localisation library for Elixir. Think of it as ex_cldr version 3.0. The first version will be released ...
New
webofbits
Squid Mesh is an open source workflow automation runtime for Elixir applications. It is aimed at Phoenix and OTP apps that want to defin...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
kip
In 2021 I started a new library called Tempo with the objective of modelling time as a set of intervals - not as instants. In 2022 I gave...
New

We're in Beta

About us Mission Statement