Join me and the CertKit team on Tuesday, October 6, 2026, at 9:00 AM PDT for a free, live webinar about the upcoming reduction in public TLS certificate lifetimes. Beginning March 15, 2027, the maximum validity period for public TLS certificates will be reduced to 100 days. This change will make manual certificate management increasingly difficult for many organizations.
Automation
Shorter certificate lifetimes require organizations to identify, enroll, deploy, and renew certificates more frequently. Automation can help reduce the administrative effort and the risk of service interruptions caused by expired certificates. This is especially important for public-facing Microsoft workloads such as Internet Information Services (IIS), Remote Desktop Services (RDS), Always On VPN, DirectAccess, and other services that use public TLS certificates.
Visibility
Effective certificate management begins with knowing which certificates exist, where they are installed, and when they expire. Without this visibility, organizations may overlook certificates until they are close to expiration or have already expired.
Internal Certificates
Certificates issued by a private certification authority (CA) aren’t subject to the lifetime restrictions imposed on public TLS certificates. However, they still require inventory, monitoring, and renewal. A consistent approach to managing public and private certificates can help reduce operational overhead.
How CertKit Helps
CertKit is a cloud-based service for managing public and private TLS certificates. During the webinar, we’ll demonstrate how CertKit provides visibility into certificate inventories and expiration dates while automating common lifecycle tasks such as enrollment, deployment, and renewal. We’ll also review recent additions to the service.
Register Now
The webinar takes place on Tuesday, October 6, at 9:00 AM PDT. Registration is required. Everyone who registers will be notified when the session recording is available.
CertKit is a cloud-based solution that automates the issuance and management of public TLS certificates. It also provides certificate monitoring and alerting for public-facing workloads. However, many organizations have internal (non-public-facing) services that also use TLS. CertKit agent v1.13.0, currently in preview, closes this gap by providing visibility into TLS certificates used by intranet resources. After installing the latest release of the agent, CertKit can now provide visibility into the status of TLS certificates for internal resources.
Intranet Monitoring
After installing or updating the CertKit agent to v1.13.0, administrators can select an internal TLS service to monitor. Follow the steps below to enable this feature.
Certificate Collection
I recommend creating a separate Certificate Collection to support intranet monitoring. In the CertKit management console, click Add Collection, enter a unique, descriptive name, and click Add Collection.
Install the Agent
Once the new collection is created, navigate to the Agents tab, select your platform, then download, install, and register the agent.
Monitor New Host
After the agent is installed and registered, navigate to the Monitoring tab and click Monitor New Host. Enter the fully qualified domain name (FQDN) of the resource and specify its TLS port. Under Host Visibility, select Internal, and then choose the agent to monitor the host from. When finished, click Monitor Host.
Note: The server running the CertKit agent does not require a TLS certificate of its own to monitor internal resources.
Monitored Hosts
CertKit can track certificates for any internal workload that uses TLS. In this example, the monitored resources include web applications, security appliances, load balancers, and HTTP CRL distribution points. The list also includes LDAPS on the domain controllers and the RDP and WinRM HTTPS services on the management workstation.
The circle next to each resource indicates its certificate status. Green indicates a healthy certificate, yellow indicates one approaching expiration, and red indicates an expired certificate or another detected issue.
Note: The RDP certificate on the management workstation appears red because it contains only the Remote Desktop Authentication EKU (1.3.6.1.4.1.311.54.1.2). It intentionally does not include Server Authentication, which CertKit currently expects when validating the service. CertKit is aware of this limitation and plans to address it in a future release.
Host Discovery
CertKit provides robust discovery for public websites but does not currently offer equivalent functionality for intranet resources. Administrators can identify internal systems listening on a specific port by using Nmap.
nmap.exe -Pn -p [port] --open [internal subnet]
For example:
nmap.exe -Pn -p 443 --open 172.16.0.0/24
Alternatively, add the -oX switch to save the output in XML format.
The resulting Nmap XML file output can be converted to CSV format using this PowerShell code.
Summary
CertKit agent v1.13.0 extends certificate monitoring to internal TLS services, giving administrators greater visibility into certificates that were previously difficult to track. Although intranet host discovery remains a manual process, tools such as Nmap and PowerShell can help identify resources to add to the monitoring platform
Getting Started with CertKit
Need help improving certificate visibility and management across your organization? Want to automate public TLS certificate enrollment for workloads such as DirectAccess, Always On VPN, IIS, SQL, and more? I can help you assess your certificate environment, identify monitoring gaps, and develop a strategy for managing certificates across internal and public-facing workloads. Fill out the form below, and I’ll provide you with more information.
In a recent post, I described some of the security benefits of using Transport Layer Security (TLS) with Microsoft SQL Server. Configuration changes are required to take full advantage of these capabilities. By default, SQL Server uses an unmanaged, self-signed certificate, which provides little security value. The best practice is to use a certificate issued by the organization’s enterprise PKI. In this guide, I’ll demonstrate how to prepare and deploy a certificate template for SQL server using Active Directory Certificate Services (AD CS), enroll for the certificate, and configure SQL server to use the new certificate for TLS connections.
Note: I have recorded a video demonstration for enabling TLS in Microsoft SQL Server 2022 on my YouTube channel here. Enjoy!
Certificate Requirements
The minimum recommended requirements for a TLS certificate for SQL Server 2022 are:
Subject Name = Server’s fully qualified domain name or the alias name of the cluster
2048-bit RSA key with SHA256
Server Authentication EKU (1.3.6.1.5.5.7.3.1)
Certificate Template
Administrators must prepare a certificate template in Active Directory (AD) adhering to the requirements listed above. On an issuing certification authority (CA) or an administrative workstation with the Remote Server Administration Tools (RSAT) installed, open the Certificate Templates management console (certtmpl.msc) and perform the following steps.
Right-click the default Web Server template and choose Duplicate Template.
Select the Compatibility tab.
In the Compatibility Settings section, select the latest version of Windows Server supported by your issuing CA servers from the Certification Authority drop-down list.
Select Windows 10/Windows Server 2016 from the Certificate recipient drop-down list.
Select the General tab.
Enter a descriptive name in the Template display name field.
Select a validity period of 1 year with a renewal period of 6 weeks.
Select the Cryptography tab.
Select Key Storage Provider from the Provider Category drop-down list.
Select RSA from the Algorithm name drop-down list.
Enter 2048 in the Minimum key size field.
Select SHA256 from the Request hash drop-down list.
Select the Issuance Requirements tab.
Check the box next to CA certificate manager approval.
Select the Subject Name tab.
Select Supply in the request.
Select the Extensions tab.
Select Application Policies.
Ensure that Server Authentication is the only application policy listed.
Select the Security tab.
Click Add.
Grant Read and Enroll permissions to the SQL Server security group or the SQL server’s computer account.
Ensure no other users/groups have enroll permission.
Once complete, publish the certificate template on all issuing CA servers in the organization.
Enroll Certificate
The certificate enrollment process involves several steps.
Request Certificate
To enroll for a new TLS certificate, open the computer certificate management console (certlm.msc) on the SQL server and perform the following steps.
Right-click on the Personal folder and choose All Tasks > Request New Certificate.
Click Next.
Click Next.
Check the box next to the SQL server certificate template.
Click the More information is required to enroll for this certificate. Click here to configure settings link.
Select the Subject tab.
In the Subject Name section, select Common Name from the Type drop-down list.
Enter the SQL server’s fully qualified domain name (FQDN) or the alias name of the SQL cluster in the Value field.
Click Add.
In the Alternative name section, select DNS from the Type drop-down list.
Enter the SQL server’s fully qualified domain name (FQDN) or the alias name of the SQL cluster in the Value field.
Click Add.
[OPTIONAL] Enter the SQL server’s single-label hostname in the Value field.
Note: Adding the single-label hostname to the Subject Alternative Name list allows administrators or applications to connect to the SQL server using its short name (NetBIOS name) without resulting in a subject name mismatch error.
Click Add.
Click Ok.
Click Enroll. The status should indicate that enrollment is pending.
Click Finish.
Approve Certificate
Once the certificate request is made, the request must now be approved. On an issuing certification authority (CA), or an administrative workstation with the Remote Server Administration Tools (RSAT) installed, open the Certification Authority management console (certsrv.msc) and perform the following steps.
Expand the CA.
Select Pending Requests.
Note the request ID for the pending request. After approval, the request ID will be required later to retrieve the certificate.
Right-click the pending request and choose All Tasks > Issue.
Important Note: I am performing the above tasks in a test lab environment. On a properly configured CA in a production environment, the requestor should not be able to approve their own request. In your environment, you may need to request that a CA administrator review and approve your request.
Install Certificate
Once the certificate has been approved and issued, open an elevated PowerShell or command window on the SQL server and perform the following steps.
Enter certreq.exe -retrieve <request ID>.
Select the CA where the certificate was issued.
Click Ok.
Select a location and enter a name for the file in the File name field.
Click Save.
Enter certreq.exe -accept <path to certificate file>.
Configure Certificate
Once the certificate has been enrolled on the SQL server, expand Personal > Certificates and refresh the view to confirm certificate enrollment. Next, perform the following steps.
Right-click the SQL server certificate and choose All Tasks > Manage Private Keys.
Click Add.
Enter the name of the SQL server domain service account and click Check Names.
If using the default SQL server service account, perform the following steps.
Click on Locations.
Select the local server.
Click Ok.
Enter NT Service\MSSQLSERVER and click Check Names.
Click Ok.
Uncheck Full control. The only permission required is Read.
Click Ok.
SQL Configuration
Next, the new certificate must be assigned to the SQL Server service. Open the SQL Server Configuration Manager (sqlservermanager16.msc) and perform the following steps.
Expand SQL Server Network Configuration.
Right-click Protocols for MSSQLSERVER and choose Properties.
Select the Certificate tab.
Select the new certificate from the Certificate drop-down list.
Select the Flags tab.
Select Yes next to Force Strict Encryption.
Click Ok.
Restart the SQL Server service for the changes to take effect.
Important Note: Selecting Force Strict Encryption will force encryption and certificate validation for all clients connecting to the SQL server. It will override any settings to bypass encryption or certificate checks. Force Strict Encryption may not be compatible with older applications or drivers. Please test thoroughly before enabling this setting.
After completing the configuration steps above, administrators can be assured that all communication between clients and the SQL server is fully protected with TLS using modern cryptography and their enterprise-managed certificate. With TLS enabled for SQL server communication, security is enhanced by encrypting data in transit, ensuring authentication, and protecting sensitive information from interception. In addition, this configuration helps meet compliance requirements.