Add Active Directory Certificate Services as a valid CAS #2476
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Active Directory Certificate Services
This pull adds initial support for ADCS as an upstream RA.
ADCS does not support ACME or the other provisioners step-ca does - using ADCS as an RA allows users to add ACME functionality to their existing ADCS PKI infrastructure, simplifying certificate renewal for non-windows environments that may want to use existing PKI infrastructure.
The following configuration is used to define the authority:
It requires the following settings:
serverAddr- hostname for the ADCS server. Must be a FQDN (not an IP) as the DCOM target is derived from it.authUserandauthPass- Username/Password. Must be in the formatDOMAIN\user.namecaName- the CA name set when setting up ADCS. Can be found as the Subject name of the CA cert (without the CN=), or by looking at the Certification Authority in the management console.templateMap- Allows you to set different ADCS Certificate Templates for different provisioners.defaultTemplateName- If a match isnt found withintemplateMap, use this Certificate Template. Ensure this is the Template Name, not the Template display name.rootCAPath- Path to the root CA for this ADCS serverintermediateCAPath- Path to a pem containing all intermediates.Currently only NTLM authentication is supported, however Kerberos (with PKINIT for certificate-based auth) could be implemented reasonably easily.
Caveats
Denied by Policy Moduleerror messages (e.g if a user attempts to request a certificate using ECDSA when the template is configured for RSA).authUservia the Security tab in the Certificate Templates Console.intermediateCAPath, but i'm unsure whether you can obtain the full chain via RPC.