Introducing Net::ACME
I’ve recently finished porting cPanel’s implementation of Let’s Encrypt’s ACME (Automatic Certificate Management Envirionment) protocol to a new CPAN module, Net::ACME.
Net::ACME offers a number of attractive features:
- It’s based closely on cPanel’s widely used Let’s Encrypt plugin.
- Memory usage is light: no Moose/Moo/etc.
- It can run in pure Perl, as long as you have an OpenSSL binary. (Otherwise, it needs Crypt::OpenSSL::RSA.)
- Thorough error checking—even Perl calling context!
- Errors are represented as typed, queryable exceptions. (The framework includes its own exception class hierarchy.)
- It’s “global clean”: no careless overwriting of variables like $@, $!, $?, etc.
The object hierarchy also closely mirrors ACME’s own object hierarchy: separate classes exist to represent ACME registrations, authorizations, challenges, and certificates.
The distribution includes example scripts that demonstrate usage of the module and should also give a good feel for the protocol itself.
I hope it’s useful!
Leave a comment