Hacker Newsnew | past | comments | ask | show | jobs | submit | ibbtown's commentslogin

But there is a harm. Just had to repair a pc of my family, because you are able to install windows 11 on a MBR Partition without EFI Boot. Has to convert it and fix some stuff, but it still starts only every second boot (srsly)

Talking about web and small busines: probably true. For lager company it was never really an option, because it was only licence free on windows. So no IBM ASF, iText on Solaris or other huge non-windows text renderer used arial even if they don't use a corporate design font


Did I missed something? If I don't find it out in 6 turns it doesn't tell me what was the right answer?


I can recommend z-push as active sync frontend. It can combine different data source (IMAP, caldav, carddav).


Having a surface 5 pro laying around here, with a bitlocker encrypted disk, which turns quickly into a BSOD during boot. Do you think it could work in auch situation? I'm still waiting for an exploit to the tom to extract some pictures from the disk


I was trying to recover data off a laptop in basically the same situation. My solution was to boot into a WinPE live USB and use bcdedit to enable safe mode (as trying to do it the normal way would ask me for the BitLocker key), which let me boot without BSODing. Though this wouldn’t work if the BSOD happens in safe mode as well…


I wish i could send the audio signal to my Sonos/airplay devices. That would make it awesome


I think it's adblock, blocking away the gdpr consent question


Interesting. It works fine in chrome with ublock and I don't see any consent modal.


Had a own server in university during mY PhD. Most request were trying to download scientific papers from large journals using absolute and not relative URLs after request.


Using it for years in DNS mode, works like a charm


Does DNS mode work to issue for internal servers that don't expose 80/443 to the internet?


That's one the main reasons to use it, another being wildcard certificate.


Yes.


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 recommend to use Snap instead. It’s an insult for professionals.


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.


> If you're still distributing snaps as the preferred method of install, you're alienating your users.

Dropped lxd because of it. Now I hear they're a proper debian package, but that decision was so weird (especially the auto-update part) I don't trust them anymore.


Same. I have a couple of comments as to why snap is awful.


I wish everything in linux land just had an AUR equivalent.


I wish I could upvote this more... snaps are the worst!


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.


> 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.


I am doing docker run -it --rm certbot/certbot

Is there a problem with that?


I wouldn’t call it a problem, but let’s hear what the Certbot docs have to say:

> this mode of operation is unable to install certificates or configure your webserver, because our installer plugins cannot reach your webserver from inside the Docker container. > > Most users should use the instructions at certbot.eff.org. You should only use Docker if you are sure you know what you are doing and have a good reason to do so.

These problems are solvable if you know what you do, but the whole premise of ACME was making it easier to obtain certificates; plus, I shouldn’t need to decide between an autonomous and hostile package manager or keeping a container environment running, secure, and configured - to set up bloody TLS certificates for a Webserver. That said, good for you if it works :)


I mount webserver docroot and /etc/letsencrypt directories into the certbot container, /docroot and /etc/letsencrypt mount points respectively, it is totally prepared for this.


How did you implement reloading the modified TLS certificates after renewal tho?


it's a two line script running periodically. the first line is docker the second is nginx -s reload. As /etc/letsencrypt dir is mounted from nginx into certbot, certbot upgrades that, nginx reload picks them up. Easy as pie.


so much this. Certbot is a monster with incredible amount of dependencies.


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.


It doesn't even work well in my experience. ACME.sh is a lot more hassle free, I've always had issues with Certbot's DNS verification.

Basically I'm not avoiding Certbot to make a point, I just think it's inferior for my specific use cases. I don't know about Dehydrated but I also expect it to be BS free.


Yup, I gave up on certbot after trying to understand why I couldn't get the Digital Ocean DNS plugin to work, which is maintained as part of the Certbot repo. (This was a few years ago, so details may have changed.)

I discovered the issue was that the plugin does some pretty broad-brush guesswork about which domain in your DNS hosting it should actually populate with the response value. If you own a bunch of similar domain names (as many orgs do), the plugin may guess wrong.

Much happier to be using dehydrated, and I don't regard it as a major impediment that I had to spend 10 minutes hand writing the necessary API call to the DNS provider.


Exactly. I've been using dehydrated on two servers since it was named acme.sh (pre-2015) and updated it once. It just works and no dependecies.


Dehydrated and acme.sh seems different. Is one of them fork?

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

https://github.com/dehydrated-io/dehydrated


Brainfart from my side. When I first installed dehydrated.sh it was originally named letsencrypt.sh (not acme.sh) and later renamed to dehydrated. That was quite a while ago.


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


Static binary, sure, but hardly a tiny supply chain attack surface: https://github.com/go-acme/lego/blob/master/go.sum

Also their official builds are built with Alpine which is a hobby distro that does not even do signed code or packages.


Are you saying that any use of Alpine is, by definition, a supply-chain security problem?


I am, yes. Alpine is not full-source-bootstrapped, often imports and trusts external binaries blindly, has no signed commits, no signed reviews, no signed packages, and is not reproducible. It is one phished git account away from a major supply chain attack any day now.

Alpine chooses low security for low contribution friction. It is the Wikipedia of Linux distros, which granted it a huge package repository fantastic for experimental use and reference, but it is not something sane to blindly trust the latest packages of in production.

It is one of the reasons why I made stagex, which in most cases is a near drop-in replacement.

https://codeberg.org/stagex/stagex


Thanks for the detailed response!

EDIT: Also, stagex looks pretty compelling; I hope it catches on!


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, in my opinion, not a very good language, makes it less secure to me than a python tool.


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.


I saw the following programs whil skimming the code:

awk, grep, curl, getent, sudo, mkdir, mv, ln, cat, rm, openssl, touch

Most of these have around 10 dependencies on libs.

Don't misunderstand me. I have nothing against the script. I just don't like the argument that bash is better because it has no dependencies.


The OS itself depends on many libs ;-)

The only things that are a bit heavy in the list are openssl and curl. Still, they are relatively self-contained tools, nothing to do with the dependency hell of certbot.


busybox, openssl, curl. Done. :)


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.


> 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?

All the packages listed are already probably installed on your system, so you have to worry about their integrity already (your system package manager (RPM, Deb) probably leverages them).

Something like Certbot pulls in dependencies on top of what your system already has, whereas Dehydrated or Acme.sh use tools that you already have to worry about anyway because they're part of the base OS.


I’m pretty sure every open source repository ever created is vulnerable to “an attack like we saw with xz,” and by that I mean a labyrinthine, multi-year effort involving highly sophisticated exploits combined with psychological manipulation, coordinated sock-puppets, global actors, and deep intrigue—to the extent that it’s absurd to cite as a threat that “dependency management” can meaningfully prevent.


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


3? You think you underestimate the number of libraries your software uses.


I actually full source bootstrapped a Linux distribution from zero recently. Most distros have a lot of dependencies you do not need.

In this case you only actually need curl, openssl, and busybox. Those depend on at least a small libc implementation and a kernel but those are certainly already present.

Coreutils or busybox is probably already installed too. Still, I will grant the requirement of musl and a linux kernel since we are being pedantic or maybe talking about an embedded linux use case, so 5 deps total to boot from metal and get a cert.

To be fair I would never actually ship openssl or busybox in a real embedded project. Would probably write a simple standalone binary using the standard library of Go or something.


How is that in any way realistic? Most people don't bootstrap Linux systems. And just because it is pre-installed doesn't make it safe. Most software on a modern Linux distribution is dynamically linked to several libraries which might depend on other libraries.


One of the biggest benefits of dehydrated is that it doesn't try to integrate with a DNS provider on its own. It just connects to ACME server and 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)[3]

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 (~200 LOC) and it worked extremely well. The fact the shell script is so simple that I could test adding/removing records without ever invoking ACME process is also a huge benefit.

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

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

[3]: https://github.com/dehydrated-io/dehydrated/wiki


Using it with Hetzner DNS API that way.


The EFF themselves recently explored the question whether Certbot should just be replaced with servers like Caddy. https://www.eff.org/es/deeplinks/2024/03/should-caddy-and-tr...


.loc instead of .local government is fine


But that TLD isn't reserved, so couldn't someone register it as a real gTLD tomorrow?


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: