AD CS TLS Certificates
The adcs mode hands certificate issuance and renewal to your own Active Directory Certificate Services (AD CS) enterprise certificate authority (CA), instead of a certificate you rotate by hand or one from a public CA like Let's Encrypt. See Automatic TLS Certificates for the full list of automatic modes and how they compare.
cert-manager submits enrollment requests to your AD CS server's /certsrv web enrollment endpoint using NT LAN Manager (NTLM) authentication. The certificate AD CS issues lands at the same location Access Analyzer already reads its TLS certificate from, and cert-manager renews it before it expires — no maintenance window, no update-cert runs.
This mode fits enterprises that already run a Microsoft public key infrastructure (PKI) and want Access Analyzer's certificate to come from it rather than from a public CA.
Before you start
The adcs mode requires:
-
The AD CS enrollment details.
Flag Requirement --adcs-urlThe AD CS server's /certsrvweb enrollment endpoint URL. Required.--adcs-usernameAn NTLM enrollment account. Required. --adcs-passwordThe account's password. Required. Pass it through the DSPM_ADCS_PASSWORDenvironment variable rather than the flag when scripting — see Install with AD CS certificates.--adcs-templateThe certificate template to request. Defaults to WebServer.--adcs-ca-bundleA PEM bundle for TLS to the AD CS server itself, separate from --ca-bundle.See Certificate Manager Flags for full details on each flag.
-
A bootstrap certificate. As with the
acmemode, the web server needs something to serve before the first AD CS certificate arrives. Pass--generate-self-signed-certto create a temporary self-signed pair, or supply--tls-cert/--tls-keywith existing files instead. See Before you start for the same requirement in theacmemode.
Set Extended Protection for Authentication (EPA) on the AD CS server's /certsrv endpoint to Off or Allow, not Required. The adcs issuer authenticates over NTLM without channel-binding tokens, so a /certsrv endpoint that requires EPA rejects every enrollment attempt with HTTP 401.
cert-manager's certificate signing request carries only Common Name and Organization in the subject. If the certificate template you name with --adcs-template requires Organizational Unit, Country, State, or Locality, AD CS rejects the enrollment.
Install with AD CS certificates
Follow Install Access Analyzer as usual, adding the AD CS flags. You can skip the "Copy the TLS Certificate to the Server" step — --generate-self-signed-cert replaces it.
export DSPM_ADCS_PASSWORD='<password>'
sudo -E dspm-installer \
--hostname dspm.corp.example.com \
--first-admin-email admin@corp.example.com \
--cert-manager-issuer-mode adcs \
--adcs-url https://ca.corp.example.com/certsrv \
--adcs-username svc-adcs-enroll \
--adcs-template WebServer \
--generate-self-signed-cert
--cert-manager-issuer-mode adcsturns on AD CS issuance.--adcs-url,--adcs-username, and--adcs-password(here set throughDSPM_ADCS_PASSWORD) are required.- Setting the password through the environment variable instead of
--adcs-passwordkeeps it out of shell history and process listings. --generate-self-signed-certprovides the bootstrap certificate.
The install proceeds exactly as Install Access Analyzer describes. When the services are up, the cluster requests the certificate from your AD CS server; issuance typically completes within a minute or two. Browsers connecting during that window see the self-signed bootstrap certificate and show a trust warning — the warning stops when the AD CS certificate is in place.
The installer doesn't save the issuance mode to /etc/dspm/installer.yaml. Every installer run uses exactly the --cert-manager-issuer-mode you pass it; omitting the flag means manual certificates. Upgrading never changes the mode.
Confirm the certificate
From any machine with a browser, open https://<hostname> — there should be no certificate warning. To check from a shell:
openssl s_client -connect <hostname>:443 -servername <hostname> </dev/null 2>/dev/null \
| openssl x509 -noout -subject -issuer -dates
The issuer should name your AD CS CA. If the issuer is still your own hostname, the bootstrap certificate is still serving. Check the certificate and challenge status on the server:
sudo kubectl describe certificate dspm-tls -n access-analyzer
The certificate's events show what AD CS returned, including an HTTP 401 from an EPA-hardened endpoint or a rejected enrollment from a template requiring unsupported subject fields.
Switch an existing installation
Switching to, from, or between automatic modes works the same way for adcs as it does for the other modes. See Switch an existing installation for the full procedure.