Re:Uacme: ACMEv2 client written in plain C with minimal depe...
by encryptluks2 on Sunday August 21, 2022 @11:33AM
(#32541153)
I'd prefer to use a C, Go, or Rust app at this point. I love shell scripts because it was one of the first scripting languages I learned, but I'd trust a developer capable of writing C, Go or Rust to do a better job and make something more optimized than what is within the scope of Posix shell scripting.
Re:Uacme: ACMEv2 client written in plain C with minimal depe...
by vladvasiliu on Sunday August 21, 2022 @01:39PM
(#32542465)
There's step-cli that's just a single go executable: https://github.com/smallstep/cli
They also provide a CA to go with it, if you need internal certs.
Re:Uacme: ACMEv2 client written in plain C with minimal depe...
by encryptluks2 on Sunday August 21, 2022 @02:37PM
(#32543107)
Thanks. I actually have this installed. It does so many things and is pretty incredible!
Re:Uacme: ACMEv2 client written in plain C with minimal depe...
by FpUser on Sunday August 21, 2022 @12:33PM
(#32541780)
To me it is a utility stuff. As long as it does the job (and acme.sh does it just fine) and does not require pulling down half of the Internet for dependencies I would not give rat's ass about what language has been used to write it.
Re:Uacme: ACMEv2 client written in plain C with minimal depe...
by jamespo on Sunday August 21, 2022 @02:20PM
(#32542897)
I don't think optimization really matters to most people for a tool that does automated cert requests.
Re:Uacme: ACMEv2 client written in plain C with minimal depe...
by encryptluks2 on Sunday August 21, 2022 @02:41PM
(#32543147)
It is to an extent. I'm not saying acme.sh is bad just that if there is a tool in Go, Rust or C that does the same thing and is more efficient then I'm picking something that isn't wrapped in a bunch of shell code. Same with tiny webservers.
Re:Uacme: ACMEv2 client written in plain C with minimal depe...
by newman314 on Sunday August 21, 2022 @05:47PM
(#32544793)
I use https://github.com/go-acme/lego, single Go binary.
Re:Uacme: ACMEv2 client written in plain C with minimal depe...
by dividuum on Sunday August 21, 2022 @12:34PM
(#32541790)
Personally, I'm a fan of https://github.com/diafygi/acme-tiny. 200 lines of python without any additional python requirements and only the openssl binary as external dependency.
Re:Uacme: ACMEv2 client written in plain C with minimal depe...
by ori_b on Sunday August 21, 2022 @01:10PM
(#32542195)
If we're plugging implementations, I tend to use the single-file implementation that ships with 9front. I wrote the first cut, but it's been improved heavily by others:
http://git.9front.org/plan9front/plan9front/HEAD/sys/src/cmd...
It works quite well, and if you mount your unix machines via sshfs, it's pretty easy to dump the certs into the right place with them.
And unlike most ACME clients, it works seamlessly with DNS authentication, which allows you to easily grab wildcard certs.
Re:Uacme: ACMEv2 client written in plain C with minimal depe...
by yonrg on Sunday August 21, 2022 @03:06PM
(#32543350)
This! Thanks for also mentioning it. So plain easy and just does what I need!
Thanks to the author for publishing it.
I maintain my own patch, so tiny-acme supports an '--outfile' option (it originally only writes to stdout). This comes in handy when it is run by systemd service/timer.
The pull request is on hold, because the code then exceeds then 200 lines threshold :shrug:
Re:Uacme: ACMEv2 client written in plain C with minimal depe...
by Klasiaster on Sunday August 21, 2022 @04:15PM
(#32543957)
You can directly redirect the service's output to a file: https://www.freedesktop.org/software/systemd/man/systemd.exe...
Re:Uacme: ACMEv2 client written in plain C with minimal depe...
by yonrg on Friday August 26, 2022 @12:25PM
(#32609460)
Thanks! That's tempting to drop the patch and just stay with the upstream.
Re:Uacme: ACMEv2 client written in plain C with minimal depe...
by frutiger on Sunday August 21, 2022 @12:50PM
(#32541979)
I will plug my own Python program https://github.com/frutiger/concorde, which does depend on `requests` and `cryptography`.
In the same spirit of minimal and light weight there is also testssh.sh [2] for testing TLS on HTTPS/SMTPS servers that also depends on bash and openssl.
[1] - https://github.com/acmesh-official/acme.sh
[2] - https://github.com/drwetter/testssl.sh