WIN-ACME

A simple ACMEv2 client for Windows (for use with Let's Encrypt et al.)

Azure DNS

Create the record in Azure DNS.

Seperate download

This plugin is offered as a separate download, which can be downloaded from the releases page on GitHub has to be unpacked into the main program folder to able to use. Note that after unpacking you will have to unblock them for the .NET CRL to trust them. You can do that from the Windows File Explorer by using the right mouse button and then checking the Unblock box on the General tab.

image

Requires pluggable version

This plugin requires to you use the pluggable version of the main executable.

Setup

This assumes you already have your DNS managed in Azure; if not, you’ll need to set that up first. If you are using the Azure DNS option for validation, you’ll need to get certain info from your Azure Tenant, and create a service principal for win-acme to use (you’ll only need to create on of these - it’s basically an account that has authority to create DNS records). There are two ways to authenticate with Azure:

Create Azure AD Service Principal Account

Use the Azure CLI to create an Azure service principal

You then need to give this Service Principal access to change DNS entries. In the Azure Portal:

  • Go to DNS Zones > sub.example.com > Access Control (IAM)
  • Click Add
  • For Role, choose DNS Zone Contributor
  • Assign access to Azure AD user, group, or application
  • Select your Service Principal
  • Click Save

Use a Managed Service Identity

More information here. Note that configuration can be different depending on your operating system version, e.g. #1413.

Configuring the plugin

During setup of the validation the program will ask several questions. Here is to answer them with information from the Azure Portal.

  • DNS Subscription ID: DNS Zones > sub.example.com > Subscription ID
  • DNS Resource Group Name: DNS zones > sub.example.com > Resource Group)

Only when authenticating Service Principal Account:

  • Directory/tenant id: Azure Active Directory > Properties > Directory ID.
  • Application client id: Azure Active Directory > App registrations > [Service Principal] > Application ID.
  • Application client secret: The password that was generated when you created the Service Principal Account.

Resources

Unattended

Service Principal Account

--validationmode dns-01 --validation azure --azuretenantid x --azureclientid x --azuresecret *** --azuresubscriptionid x --azureresourcegroupname x

Managaged Resource Identity

--validationmode dns-01 --validation azure --azureusemsi --azuresubscriptionid x --azureresourcegroupname x