Skip to content

Commit b2d1687

Browse files
Add blog article for cert mgmt intro, begin acme server docs
1 parent 0e94cfa commit b2d1687

File tree

6 files changed

+184
-4
lines changed

6 files changed

+184
-4
lines changed
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
---
2+
title: Introduction to Certificate Management Automation
3+
description: Learn the fundamentals of automated SSL/TLS certificate management and why it's essential for modern infrastructure.
4+
slug: certificate-automation-intro
5+
authors: webprofusion-chrisc
6+
tags: [certify, certificates, automation, ssl, tls]
7+
image: https://certifytheweb.com/images/management/summary.png
8+
hide_table_of_contents: false
9+
---
10+
11+
Your certificates are essential for securing web traffic, APIs, and internal communications. Manually managing certificates across multiple servers and applications can be time-consuming, error-prone, and increasingly impractical as certificate lifetimes continue to shrink.
12+
13+
This article introduces the fundamentals of certificates and certificate management automation and explains why it's becoming essential for modern infrastructure.
14+
15+
<!-- truncate -->
16+
17+
## Why Automate Certificate Management?
18+
19+
Manual certificate management worked when certificates had longer lifetimes, but the landscape is rapidly changing:
20+
21+
- **Shorter Certificate Lifetimes**: Let's Encrypt currently issues 90-day certificates, and there's industry movement toward even shorter lifetimes (potentially 47 days in the future)
22+
- **Scale Challenges**: Managing dozens or hundreds of certificates manually becomes unmanageable
23+
- **Reduced Downtime**: Automated renewal eliminates the risk of expired certificates causing service outages
24+
- **Security Benefits**: Fresh certificates with shorter lifetimes reduce the window of vulnerability if a private key is compromised
25+
26+
Starting your automation journey now prepares you for the future of certificate management.
27+
28+
## Understanding the Certificate Lifecycle
29+
30+
Certificate management automation involves three main phases:
31+
32+
### 1. Certificate Ordering and Validation
33+
34+
A Certificate Authority (CA) is a public or internal entity which issues certificates. Public CAs issue trusted certificates. That trust happens because your OS/browser already knows and trusts their root issuing certificate via OS/software updates (and in turn any intermediate issuer they have signed using that root).
35+
36+
Automated certificate management can use various technologies but the most commonly used is the Automatic Certificate Management Environment (ACME) standard: [RFC8555](https://datatracker.ietf.org/doc/html/rfc8555/)
37+
38+
#### Wait, what is a certificate though?
39+
A certificate is an assurance by an issuer (the CA) that the entity that requested the cert (and held a specific private key, which is a secret chunk of data only your system knows) was verifiably in control of the identifiers included as subjects in the certificate details, at the time the cert was issued.
40+
41+
A cert typically contains a set (Subject Alternative Names or SAN) of identifiers which can be domains, IP addresses etc) and the public key that corresponds to your private key.
42+
43+
When using a cert you need your private key and the cert in combination, this is then loaded by the service that uses the certificate to begin the TLS (transport layer security) conversation. The client (browser etc) on the other end of the conversation already trusts the root certificates of the CA via OS updates or other "trust store" certificate distribution.
44+
45+
#### Domain Validation
46+
CAs like Let's Encrypt, Google Trust Services, and traditional commercial CAs require proof that you control the domains included in your certificate. This validation typically happens through:
47+
48+
**HTTP Domain Validation**: The CA checks for a specific file or response at a well-known URL on your domain. Automation tools can handle this by temporarily serving the required response.
49+
50+
**DNS Domain Validation**: The CA looks for a specific TXT record in your domain's DNS. Modern certificate management tools can automatically update DNS records through provider APIs, making this method ideal for internal services or when HTTP validation isn't feasible.
51+
52+
Modern certificate management systems can support multiple CA accounts and the best ones even provide automatic fallback strategies if your preferred CA experiences issues.
53+
54+
### 2. Certificate Storage and Distribution
55+
56+
Once obtained, certificates need to be securely stored and made available to the applications that need them. This typically involves:
57+
58+
- **Local Certificate Stores**: On Windows, this means the machine certificate store
59+
- **File-based Storage**: PFX archives or PEM files for cross-platform compatibility
60+
- **Secrets Management**: Integration with services like Azure Key Vault or HashiCorp Vault
61+
62+
### 3. Deployment and Application Integration
63+
64+
This is often the most complex phase, as every application has its own way of consuming certificates:
65+
66+
- **IIS Integration**: Windows IIS can use certificate store bindings or Centralized Certificate Store
67+
- **File-based Applications**: Many applications read certificates from specific file paths
68+
- **API-based Updates**: Some services accept certificate updates through REST APIs
69+
- **Service Restarts**: Some applications require restart after certificate updates
70+
71+
Additionally some applications or appliances require using their own private keys for certificate signing requests (CSRs), or require key re-use for Certificate Pinning (trusts a specific set of certificate public keys).
72+
73+
## Deployment Strategies
74+
75+
### Built-in Integration Tasks
76+
77+
Modern certificate management tools can provide various levels of built-in support for common scenarios:
78+
- **Web Servers**: IIS, Apache, Nginx
79+
- **Mail Servers**: MS Exchange etc
80+
- **Secrets Vaults**: Store certificates as secrets for other apps and services to consume
81+
- **Cloud Services**: Integration with cloud provider certificate services
82+
83+
### Custom Deployment Tasks
84+
85+
For unique environments, mature automation tools typically offer:
86+
- **Export Tasks**: Convert certificates to various formats (PEM, PFX etc)
87+
- **File Copy Operations**: Deploy certificates over UNC shares or SSH
88+
- **Scripting Integration**: PowerShell, Bash, or other scripting languages for custom logic
89+
- **API Calls**: Update configuration or send notifications through REST APIs or other interfaces
90+
91+
### Progressive Automation
92+
93+
You don't need to automate everything at once. A typical progression might be:
94+
95+
1. **Manual Export**: Start by automating certificate acquisition, then manually deploy during maintenance windows
96+
2. **Automated Export**: Set up automatic export to shared locations where applications can find updated certificates
97+
3. **Full Automation**: Implement automatic deployment and service updates. Consider monitoring deployment to ensure what you think is deployed is actually working.
98+
99+
## Deployment Types
100+
101+
Services that secure communication using TLS reference certificates in a variety of way. Deploying your cert to them requires knowing how the service loads/selects the certificate:
102+
103+
- **Thumbprints**: On Windows a cert is commonly stored in the local machine certificate store and referenced by applications using the "Thumbprint" value, this is usually the SHA1 hash of the certificate details, which changes with each renewal even if the same private key is reused.
104+
- **PFX**: This is an archive format also known as PKCS#12 or .p12, most popular on Windows. It contains your cert, intermediate issuers (but not the root), and the private key. The private key can optionally be password protected.
105+
- **PEM**: Certificates can be split into component files with the primary ("leaf" or "end-entity") certificate and the private key in PEM encoded (base64) text files. These are commonly used for apps that are not native to Windows, or on Linux services etc where PFX/.p12 is less frequently encountered.
106+
107+
Deploying a cert can variously involve:
108+
- Updating a thumbprint value on a port binding, file or registry key (typical on Windows).
109+
- Copying cert files to a specific location, in specific formats.
110+
- Restarting/reloading services so they pick up the latest cert.
111+
112+
## Planning Your Automation Strategy
113+
114+
Before implementing certificate automation, consider:
115+
116+
1. **Inventory Your Certificates**: Document all certificates currently in use and their renewal deployment methods
117+
2. **Assess Application Requirements**: Understand how each application consumes certificates
118+
3. **Network Access**: Ensure your automation tool can reach all target systems, or target systems can pull the latest cert regularly.
119+
4. **Security Boundaries**: Plan for deployment across different security zones or networks
120+
5. **Monitoring and Alerting**: Implement monitoring to detect renewal failures or deployment issues
121+
122+
## Getting Started
123+
124+
The complexity of certificate automation varies greatly depending on your environment, but the key is to start simple and gradually expand your automation coverage. Modern tools like Certify Certificate Manager make it easy to begin with basic scenarios and progressively add more sophisticated deployment tasks as your needs grow.
125+
126+
The goal is to transform certificate management from a manual, error-prone task into a reliable, automated process that enhances both security and operational efficiency.
127+
128+
### Our Products
129+
**Certify Certificate Manager (CCM)** is our Windows-based UI for certificate management and has been around for several years.
130+
- Around 200K active installs globally
131+
- Optimized for Windows/IIS certificate management
132+
- Full UI for management and configuration
133+
134+
**Certify Management Hub** (in beta) is our new self-hosted cross-platform web UI and API which can also talk to and configure many CCM instances (v7 onwards).
135+
- Start small and simple, grow with your requirements
136+
- Centralized role-based access, controlled API access
137+
- New agent for Linux and macOS which has the same core as CCM
138+
- Experimental support for monitoring external ACME clients and can report status of renewals for things like acme.sh, certbot etc.
139+
- Managed Challenges allow centralized DNS challenge config without distributing sensitive credentials
140+
- New experimental ACME API allows standard ACME clients to order certs as normal but have the hub respond to domain validation challenges automatically on their behalf.
141+
142+
Features include:
143+
- Multi-CA support with optional automated fallback
144+
- Automated renewal and deployment tasks
145+
- Status reporting to our hosted Dashboard or to the self-hosted Management Hub
146+
- Automated zero-config recurring failure notification emails via our hosted API.
147+
148+
## Next Steps
149+
150+
Ready to start your certificate automation journey? Check out our [Getting Started Guide](/docs/intro) or explore our range of [certificate management tools](/) to find the solution that best fits your environment.

blog/authors.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,4 @@ webprofusion-chrisc:
33
title: Lead Developer of Certify The Web
44
url: https://github.com/webprofusion-chrisc
55
image_url: https://avatars.githubusercontent.com/u/2445502?v=4
6-
socials:
7-
x: webprofusion
8-
github: webprofusion-chrisc
6+

docs/guides/tools.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ title: Useful Tools
44
---
55

66
## Useful ACME Related Tools
7+
The following tools can be useful for ACME related debugging, configuration and analysis.
78

89
- **[Let's Debug](https://letsdebug.net):** Diagnose ACME challenge issues and validate domain configuration.
910
- **[SSL Labs Server Test](https://www.ssllabs.com/ssltest/):** Comprehensive SSL/TLS configuration and certificate analysis.

docs/hub/guides/acme-server.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
title: Managed ACME Service
3+
---
4+
5+
## Summary
6+
The Hub API can provide a simple ACME service which proxies certificate orders to real Certificate Authorities and takes care of the domain validation on behalf of the calling ACME client.
7+
8+
This means you can point any ACME client client at the Hub ACME directory URL, ask it to complete HTTP domain validation (or none at all) and the hub will transparently order the corresponding certificate and complete domain validation on the clients behalf using a matching pre-configured a Managed Challenge.
9+
10+
If your ACME client support External Account Binding (EAB) this can be used to identify and authorize the client, if EAB is not supported you can optionally enable a unique ACME URL for each client.
11+
12+
### Example
13+
14+
If you control a domain "projectbids.co.uk" and wanted to create a certificate "internal-app.projectbids.co.uk" from another device, that device has an ACME client but can't answer ACME http/dns challenges itself, you could instead use the hub to:
15+
- Configure a Managed Challenge which can update the target domain DNS.
16+
- Setup EAB credentials for your ACME client to use to identify itself to the hub and authorized it to use the required managed challenge.
17+
- Configure your ACME client to use the hub ACME API, providing the EAB credentials to identify itself to the hub during ACME account creation
18+
- Configure a new certificate in your ACME client with a domain/identifier matching the managed challenge.
19+
20+
## Setup your Managed Challenge
21+
22+
Configure a [managed challenge](./managedchallenges.md) in the hub to answer challenges for your target domain.
23+
24+
### Creating EAB Credentials
25+
- Under Settings > Users, create an application security principal to represent your ACME client e.g. *Example ACME Client on firewall-01*. Assign the role *Managed ACME Consumer*
26+
- Under API Access, select Add API Token. Provide a descriptive title e.g. *Example ACME EAB Credentials*, select the security principle you created, select/scope the token to the *Managed ACME Consumer* role.
27+
- Select *View as EAB* against the credential, copy the displayed values for use in your ACME client during initial ACME account creation.
28+
29+
### Setup your ACME client
30+
31+
In your ACME client of choice (on any device that can communicate with the hub API), configure the client to use the `<your hub api url>/acme/directory` ACME service and provide the EAB credentials you have created. The ACME client will register a new account against the ACME service, you can then order a new certificate for identifiers matching your managed challenge that was configured in the hub.
File renamed without changes.

sidebars.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ export default {
117117
type: 'category',
118118
label: 'Managed Challenges',
119119
items: [
120-
'hub/managedchallenges',
120+
'hub/guides/managedchallenges',
121121
]
122122
},
123123
{

0 commit comments

Comments
 (0)