I have a barebones perl client and library for LE, Protocol::ACME.
This is a work in progress and though the provided sample script, client.pl, is fully usable with tweaks for someone else’s environment it is not to be considered complete.
What it does:
Provides needed calls for all aspects of account and cert provisioning with LE except for revocation and recovery
Gives a call back interface for handling challenges customized for your environment
What is still to be done:
Submit to CPAN once it received more feedback and polishing
Remove copious amounts of debug code
Provide canned modules for common challenges to reduce the need for custom code in most cases
generated several hundred certificates tonight
the sleep() in waiting for challenge fulfillment actually became the bottleneck in the end. but its free ssl certs, probably nicer to not hit the letsencrypt servers too hard
otherwise it works fine
about the only changes I made that others might find useful would be to:
to assume apache, and add a .htaccess file in the .well-known/acme-challenge directory to disable modrewrite redirects, and password protection.
RewriteEngine Off
Allow from all
Satisfy Any
and, if it didnt exist already, cleanup the .well-known directory as well.
actually i just rmdir, and let it silently fail if it wasnt empty