Live data from Hacker News

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

github.com

11–20 of 111 posts

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

#11
post #4
post #3

Earlier quoted context omitted.

Why would you use this for anything else than a joke given that Certbot exists, and is even in most repositories? (asking seriously)

Certbot is a massive pile of dependencies that you need to care and feed and update. You should not need 100s of megs of nonsense for something that can be done with a shell script.

With that rationale, why not use https://github.com/go-acme/lego which is a self contained lets encrypt client in Go?

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

#12
post #10
post #3

Earlier quoted context omitted.

Why would you use this for anything else than a joke given that Certbot exists, and is even in most repositories? (asking seriously)

The only joke here is Certbot, a tool intended for use on servers but distributed on a channel intended for consumer use - Snap. The only package manager that will update on its own, when it feels like it, without a killswitch, runs as a daemon intertwined with the system. Icing on the cake is that the Certbot team advertises alternative install methods, of which none work and all of the lengthy guides for them recom…

> the Certbot team advertises alternative install methods, of which none work

I've only been using it for a little while, but the pip + venv method seems to work decently well: https://certbot.eff.org/instructions?ws=other&os=pip

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

#13
post #10
post #3

Earlier quoted context omitted.

Why would you use this for anything else than a joke given that Certbot exists, and is even in most repositories? (asking seriously)

The only joke here is Certbot, a tool intended for use on servers but distributed on a channel intended for consumer use - Snap. The only package manager that will update on its own, when it feels like it, without a killswitch, runs as a daemon intertwined with the system. Icing on the cake is that the Certbot team advertises alternative install methods, of which none work and all of the lengthy guides for them recom…

Yep, this.

So ridiculous to have to install yet another package manager, snapd, to get certbot installed "the easy way".

The alternative to get around snapd works fine (IMHO, for my situation, a lightsail instance running amazon linux 2023 where installing snapd is a pain in the ass), but you still have to jump through some hoops.

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

#15
post #9

Earlier quoted context omitted.

People are always talking like shell scripts are without dependencies. Shell scripting ist mostly piping program outputs to different programs, that have dependencies on libraries themselves. Each of them have to be kept up to date to stay secure. Just because they are mostly preinstalled on the system doesn't make them not a dependency. This, together with the fact that most shell scripting is bash based which is, i…

If it is just a few curl and openssl commands, why make a user install hundreds of megs of python deps just to ultimately call mostly openssl commands anyway One of the biggest risks today is supply chain attacks. The more dependencies you have, the more people you are giving the ability to tamper with your critical code paths.

Wouldn't this bash script be just as susceptible to supply chain attacks? What dependencies does openssl, cURL, sed, grep, awk, mktemp pull in, and could it be vulnerable to attack like we saw with xz?

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

#16

As a bash script actually, not a (implied POSIX) shell script. Do not mix these two.

Seems to work in zsh too. Both bash and zsh are shells like c-shell ksh etc. Nowhere is it implied that shell-scripts are written for Bourne shell.

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

#17
post #9

Earlier quoted context omitted.

If it is just a few curl and openssl commands, why make a user install hundreds of megs of python deps just to ultimately call mostly openssl commands anyway One of the biggest risks today is supply chain attacks. The more dependencies you have, the more people you are giving the ability to tamper with your critical code paths.

Wouldn't this bash script be just as susceptible to supply chain attacks? What dependencies does openssl, cURL, sed, grep, awk, mktemp pull in, and could it be vulnerable to attack like we saw with xz?

I think the point is to minimize the total attack surface on a system. If the bash script only depends on programs like those you list, which Linux distros package as default anyway, the shell script has not introduced any new dependencies on your system.

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

#18
post #10
post #3

Earlier quoted context omitted.

Why would you use this for anything else than a joke given that Certbot exists, and is even in most repositories? (asking seriously)

The only joke here is Certbot, a tool intended for use on servers but distributed on a channel intended for consumer use - Snap. The only package manager that will update on its own, when it feels like it, without a killswitch, runs as a daemon intertwined with the system. Icing on the cake is that the Certbot team advertises alternative install methods, of which none work and all of the lengthy guides for them recom…

I'm a simple man, I see a comment complaining about snap and I automatically upvote.

It's 2024. If you're still distributing snaps as the preferred method of install, you're alienating your users. AppImage, Flatpak, and regular containers are all far better deployment options.

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

#19
post #9

Earlier quoted context omitted.

If it is just a few curl and openssl commands, why make a user install hundreds of megs of python deps just to ultimately call mostly openssl commands anyway One of the biggest risks today is supply chain attacks. The more dependencies you have, the more people you are giving the ability to tamper with your critical code paths.

Wouldn't this bash script be just as susceptible to supply chain attacks? What dependencies does openssl, cURL, sed, grep, awk, mktemp pull in, and could it be vulnerable to attack like we saw with xz?

Absolutely there is still supply chain risk there. But less risk in 3 dependencies than 300.

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

#20
post #12
post #10

Earlier quoted context omitted.

The only joke here is Certbot, a tool intended for use on servers but distributed on a channel intended for consumer use - Snap. The only package manager that will update on its own, when it feels like it, without a killswitch, runs as a daemon intertwined with the system. Icing on the cake is that the Certbot team advertises alternative install methods, of which none work and all of the lengthy guides for them recom…

> the Certbot team advertises alternative install methods, of which none work I've only been using it for a little while, but the pip + venv method seems to work decently well: https://certbot.eff.org/instructions?ws=other&os=pip

Did you see that bold disclaimer on top?

> Partial support > The Certbot team supports this installation method on a best effort basis. If you are on a more obscure or heavily customized system, these instructions may not work and the Certbot team may be unable to help you resolve the problem.

This is an instant no-go for any professional environment I ever worked in.

Post reply on HN