Documentation Index
Fetch the complete documentation index at: https://conductorone-groman-network-requirements-updates.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Why LDAPS is required
Windows Server 2025 enforces LDAP signing by default. While signed LDAP over port 389 works, LDAPS (port 636) provides full TLS encryption of all LDAP traffic — the security best practice for production AD environments. LDAPS requires a valid server certificate on each domain controller. Without one, port 636 will listen but reject all TLS handshakes.Connection modes and certificate trust
The connector has two connection modes that handle TLS certificate validation differently:| Mode | Platform | Certificate trust source | Config flag |
|---|---|---|---|
winldap (default on Windows) | Windows only | Windows certificate store (Cert:\LocalMachine\Root) | Certs must be imported via certutil -addstore Root <ca.cer> |
ldap (default on Linux) | Any | Go’s built-in TLS stack | ldaps-skip-verify controls certificate validation |
ldaps-skip-verify flag has no effect in this mode. If LDAPS fails, ensure the issuing CA certificate is in the machine’s Trusted Root Certification Authorities store.
go-ldap mode uses Go’s TLS implementation. By default, ldaps-skip-verify is true for backwards compatibility with self-signed AD certificates. In production environments with properly issued certificates, set ldaps-skip-verify: false in your config to enable full certificate verification:
ldaps-skip-verify: true disables certificate chain and hostname validation. This is acceptable for dev/lab environments with self-signed certificates but should not be used in production.Prerequisites
- Windows Server 2025 with Active Directory Domain Services installed
- Domain Admin or Enterprise Admin privileges
- The DC must be able to reach itself (no firewall blocking port 636 loopback)
What gets installed
| Component | Purpose |
|---|---|
AD CS Role (ADCS-Cert-Authority) | Certificate Authority that can issue certificates |
| Enterprise Root CA | Trusted by all domain-joined machines automatically |
| Domain Controller certificate | Auto-enrolled via the built-in “Domain Controller” template |
Set up LDAPS on Windows Server
Install the AD CS role.This installs the Certificate Authority role and its management tools (certsrv.msc, certutil).
Configure as Enterprise Root CA.Why Enterprise Root CA?
- Enterprise (not Standalone): Integrates with AD, enabling auto-enrollment of DC certificates via certificate templates. Standalone CAs require manual certificate requests.
- Root (not Subordinate): In a lab or single-domain environment, there’s no parent CA to chain to. Production environments may use a two-tier hierarchy (offline Root CA + online Subordinate CA).
RSA 4096-bitwithSHA256: Strong key size and modern hash algorithm10-year validity: Appropriate for a lab root CA
Force domain controller certificate auto-enrollment.After the CA is configured, the DC should auto-enroll for a certificate using the built-in “Domain Controller” template. To trigger this immediately:This tells the certificate auto-enrollment service to check for and request any certificates it’s eligible for.
Verify the certificate.The certificate should have:
- Subject:
CN=<your-dc-fqdn>(for example,CN=DC01.corp.example.com) - Enhanced Key Usage: Server Authentication (OID 1.3.6.1.5.5.7.3.1)
- Issued by: Your new Enterprise Root CA
Diagnosing LDAPS with test-ldaps
The connector includes a built-in diagnostic subcommand that tests connectivity to every configured domain in sequence:
BATON_CONFIG_PATH or the default path) and runs four checks per domain:
- DC resolution — finds a domain controller via native API (Windows) or DNS SRV records (Linux)
- TCP connect — raw TCP connection to the LDAP(S) port
- TLS handshake — validates the server certificate (LDAPS only); reports subject, issuer, and expiry even when validation fails
- LDAP bind — attempts authentication using the configured method (Kerberos/GSSAPI or Simple)
test-ldaps reports the certificate details and suggests a fix:
additional-domains, and reports a summary count at the end.
Troubleshooting
LDAPS still fails after CA setup
- Certificate not yet enrolled: Run
certutil -pulseand wait 30 seconds - Wrong certificate template: The “Domain Controller” template must be enabled on the CA. Check with:
- Certificate missing Server Authentication EKU: The DC certificate must include OID 1.3.6.1.5.5.7.3.1
- Schannel not picking up the cert: Restart the DC, or restart the Active Directory Domain Services service:
Certificate requirements for LDAPS
Per Microsoft documentation, the DC certificate must:- Be in the Local Computer’s Personal (
My) certificate store - Have a private key present and associated
- Include Server Authentication in Enhanced Key Usage (OID 1.3.6.1.5.5.7.3.1)
- Have the DC’s FQDN in Subject or Subject Alternative Name
- Use a Schannel-compatible CSP (for example, Microsoft RSA SChannel Cryptographic Provider or KSP)
- Be issued by a CA trusted by the DC and its clients
Production considerations
- Two-tier CA hierarchy: Use an offline Root CA and an online Subordinate/Issuing CA
- Certificate lifetime: DC certificates should auto-renew; monitor expiration
- CRL distribution: Ensure Certificate Revocation Lists are accessible to all clients
- LDAP Channel Binding: Server 2025 may also enforce channel binding tokens — ensure clients support it
- Certificate verification: If running in go-ldap mode, set
ldaps-skip-verify: falsein production to enforce TLS certificate validation - Cross-forest LDAPS: Each forest’s CA certificate must be independently trusted. See Multi-domain and cross-forest sync for details
- Diagnostics: Run
./baton-active-directory test-ldapsafter any certificate or connectivity changes to verify all domains