A few days ago, there was a thread regarding letsencrypt clients and their, um, cavalier approach to security. Since I like my free certs and I like automation, and I also like not worrying about being owned, I reckoned I could do better than mystery-meat clients.
https://github.com/kristapsdz/letskencrypt This isolates the steps of refreshing a certificate into isolated processes, each of which is priv-dropped, chrooted, pledged, etc. The manpage says it all: https://github.com/kristapsdz/letskencrypt/blob/master/letskencrypt.1 It's obviously brand-new, but it works and I thought I'd see if anybody's interested in looking over the libcrypto bits--if not the approach in general. The stuff that has manpages I think I get, but there's some (e.g., X509v3 extension handling, properly seeding RAND, calling XXXX_free if the ptr is NULL, memory management, ...) that's undocumented and is just shot in the dark. Moreover, the answers offered on OpenSSL mailing lists seem... questionable. It's designed to run on OpenBSD but works crappily on Mac OS X and Linux. Crappily because both are hostile to good security practises. I'm not going to put any extra effort into these for compatibility. (Side note: this requires the patch to json-c posted 09/05/2015 to the ports list. Or is there a better json parser in C?) Thoughts? Letsencrypt experts? Best, Kristaps

