Posh-ACME is a PowerShell based ACMEv2 client that supports both Windows PowerShell 5.1+ and PowerShell Core 6.0+. You can find the project site here:
You can download directly from GitHub or install via PowerShellGallery.
Here are the release notes from the changelog:
3.12.0 (2019-12-10)
-
Set-PAOrdernow has-DnsPluginand-PluginArgsparameters to allow changing plugins and associated credentials prior to a renewal operation. -
Upgraded BouncyCastle library to version 1.8.5.2 and renamed the DLL to avoid conflicts with older copies that may get installed into the .NET GAC by other software.
-
ACME server errors returned during calls to
Revoke-PAAuthorizationare now non-terminating errors rather than warnings. -
Fixed bug where new orders created with
New-PACertificateand no explicit plugin wouldn’t get the Manual default if the account was already authorized for the included names. -
Fixed
Get-PAAuthorizationswhen using explicit account reference -
Fixed datetime parsing issues on non-US culture environments (#208)
-
Fixed errors thrown by
Submit-Renewalwhen run against an order with a null DnsPlugin. A warning is now thrown instead. -
Fixed parameter binding error when using
-PluginArgswithSubmit-Renewal -
Fixed HurricanElectric guide’s parameter references
-
Fixed Azure tests
3.11.0 (2019-11-12)
-
Added
Revoke-PAAuthorizationwhich enables revocation of identifier authorizations associated with an account. -
Get-PAAuthorizationsnow has an optional -Account parameter and better error handling. -
Get-PAAuthorizationhas been added as an alias forGet-PAAuthorizationsto better comply with PowerShell naming standards. It will likely be formally renamed in version 4.x and the old name should be considered deprecated. This change should allow dependent scripts to prepare for that change in advance. -
Install-PACertificatenow supports parameters to select the store name, location, and the exportable flag. -
Workaround for Boulder issue that doesn’t return JSON error bodies for old endpoints.
-
Fixed bug creating new orders with a changed KeyLength value that was preventing the required new private key from being created.