Skip to content

Commit 684ccb3

Browse files
Add docs page for CCS
1 parent a50c652 commit 684ccb3

File tree

8 files changed

+1918
-1273
lines changed

8 files changed

+1918
-1273
lines changed

docs/certificate-process.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Note that for FTP site bindings you need to select "Single Site" instead.
5858
##### Deployment Tasks and Advanced Usage
5959
In addition to the Auto Deployment options, you can also make use of a variety of pre-built [Deployment Tasks](deployment/tasks_intro.md) for local or remote deployment. You can also use scripting tasks to work with your certificate using your own custom scripting.
6060

61-
Deployment Tasks can be used used for common certificate tasks such as deploying to Microsoft Exchange, updating a certificate in a secrets vault (such as Azure Key Vault), deploying to a CCS share or converting the certificate into different file types.
61+
Deployment Tasks can be used used for common certificate tasks such as deploying to Microsoft Exchange, updating a certificate in a secrets vault (such as Azure Key Vault), deploying to a [CCS share](deployment/tasks/ccs.md) or converting the certificate into different file types.
6262

6363
### 4. Preview
6464
Using the *Preview* tab you can see a detailed summary of how your Managed Certificate is configured and what actions the app will plan to take next, including how the new certificate will be deployed.

docs/deployment/tasks/ccs.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Using Centralized Certificate Store (CCS) on Windows
2+
3+
IIS on Windows has a feature called *Centralized Certificate Store* (CCS) which lets IIS load the latest certificates it needs from a local path or network share. This is useful when you need to share certificates across multiple IIS web servers, or if you want to centralize renewals on one server and copy the certs to other servers.
4+
5+
An advantage with this approach is that the IIS binding configurations themselves are not updated, which avoids application recycling/reloads which can happen when the IIS `applicationhost.config` is touched by the Web Administration library which updates IIS certificate bindings.
6+
7+
## Basic Guide to Configuring IIS CCS
8+
9+
### Prerequisites
10+
- A supported version of Windows Server
11+
- IIS 8.0 or later with CCS feature installed
12+
- Network share accessible by all IIS servers as UNC path e.g. `\\server01\certificates\`
13+
- Proper permissions on certificate store location
14+
15+
### Step-by-Step Configuration
16+
17+
1. **Install CCS Feature**
18+
- Use the Windows Server feature administration UI to enable the CCS feature for IIS.
19+
20+
2. **Create Network Share**
21+
- Create a shared folder on a server
22+
- Grant read permissions to IIS application pool identities
23+
- Grant read/write to the machine or account which will be renewing/writing the certificate. When using the machine identity you may prefer to create a security group and add the machine to that group.
24+
25+
3. **Configure CCS via IIS Manager**
26+
- Open IIS Manager
27+
- Select server node
28+
- Double-click "Centralized Certificates"
29+
- Enable feature and specify UNC path
30+
- Provide credentials for accessing the share
31+
32+
Alternatively configure via PowerShell:
33+
```powershell
34+
Set-IISCentralCertProvider -CertStoreLocation "\\server\certificates"
35+
-UserName "domain\user"
36+
-Password "password"
37+
-Enabled $true
38+
```
39+
40+
4. **Certificate Conventions**
41+
- Certificates must be named using the FQDN (e.g., `www.example.com.pfx`). The Certify *Deploy to CCS* task will take care of naming the files correctly.
42+
- Private key password should be consistent across certificates. To set a certificate password in Certify use *Certificate > Advanced > Signing & Security > Password*. The password takes effect when you next renew the certificate and the certificate PFX file is rebuilt.
43+
44+
5. **Configure the Managed Certificate to export to the CCS store location**
45+
46+
- On your existing managed certificate:
47+
- Set a PFX password under Certificate > Advanced > Signing & Security > Password.
48+
- Set *Deployment Mode* on the *Deployment* tab to *No Deployment* or *Store Only*. This is to avoid attempting to update the IIS bindings outside of CCS.
49+
- Under *Tasks > Deployment Tasks*, add a *Deploy to CCS task*, configure the output share path. The task will decide the output filename naming scheme depending on the domains etc.
50+
- Run your renewal to generate your new PFX and export it to your share path. If all credentials were correct you will find the PFX file has been exported to the share path ready for use.
51+
52+
6. **Binding Configuration**
53+
- When creating HTTPS bindings in IIS, select "Use Centralized Certificate Store" and specify the Hostname. As normal you should avoid specifying IP address bindings and instead use "All Unassigned" and enable SNI.
54+
- If you have previously been using directly updated HTTPS bindings edit or recreate the HTTPS binding in IIS. In Certify, set Deployment Mode to *No Deployment* or *Store Only*, otherwise it will try to update the IIS binding.
55+
56+
### Security Considerations
57+
- Use a dedicated service account with minimal required permissions to access the share.
58+
- Implement proper network security for certificate store access
59+
60+
### Known Issues
61+
- If the IIS UI cannot read the private key of a certificate the UI will show an exclamation mark, however this is normal as IIS itself should still be able to access the key, unless the PFX password is mismatched.
62+
63+
### Troubleshooting
64+
- Verify network connectivity to certificate store
65+
- Check event logs for CCS-related errors
66+
- Validate service account permissions
67+
- Confirm certificate naming matches hostname in bindings

docs/deployment/tasks_intro.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Built-in deployment task types, each with UI to configure the task parameters et
3838
| [Deploy to Apache Tomcat](./tasks/tomcat.md) | Export the certificate as a pkcs12 key store for use with Apache Tomcat application server. |
3939
| [Deploy to Azure App Service](./tasks/azure-app-service.md) | Note that setting a PFX password (Certificate> Advanced > Signing & Security) is required for this deployment. |
4040
| Deploy to Azure Key Vault| Export the certificate to your choice of Azure Key Vault for use with other Azure services or sharing with other systems. Supports service variations such as Azure Cloud, Azure US Government, Azure China etc. |
41-
| Deploy to Centralized Certificate Store (CCS)| Copies to a chosen UNC share using the credentials you provide, automatically naming the files as required by IIS for each domain. You then configure the IIS CCS feature to pick up certs from the share. |
41+
| [Deploy to Centralized Certificate Store (CCS)](./tasks/ccs.md)| Copies to a chosen UNC share using the credentials you provide, automatically naming the files as required by IIS for each domain. You then configure the IIS CCS feature to pick up certs from the share. |
4242
| Deploy to Doppler| Deploys the chosen certificate components to the Doppler secrets storage service. |
4343
| [Deploy to Microsoft Exchange](./tasks/exchange.md)| Export the certificate to a local MS Exchange services and apply it to an optional list of services (IMAP, SMTP, IIS, POP etc). |
4444
| Deploy to Hashicorp Vault| Export the certificate to your Vault instance, with optional namespaces. |

docs/features/index.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ This is a overview of all the major features available across the **Certify The
1414
These fundamental certificate management capabilities are available across all products:
1515

1616
- **Automated ACME Certificate Renewals** - Automatic renewal with zero-config failure notifications
17-
- **Multi-CA Support** - Support for Let's Encrypt, Google Trust Services, ZeroSSL, Actalis, and enterprise CAs
17+
- **Multi-CA Support** - Support for Let's Encrypt, Google Trust Services, ZeroSSL, Actalis, Custom and enterprise CAs
1818
- **Certificate Authority Fallback** - Optional automatic fallback to alternative CAs if the primary fails
1919
- **Wildcard Certificate Support** - Full support for wildcard domains (`*.example.com`)
2020
- **IP Certificates** - Certificate covering IPv4 or IPv6 addresses
@@ -53,16 +53,16 @@ Comprehensive deployment options for various platforms and services:
5353

5454
**Web Servers & Load Balancers:**
5555
- IIS (Auto-deployment with binding management)
56-
- Apache HTTP Server (PEM format export)
57-
- nginx (PEM format export)
58-
- Apache Tomcat (PKCS#12 keystore)
56+
- [Apache HTTP Server (PEM format export)](../guides//apache-nginx.md)
57+
- [nginx (PEM format export)](../guides/apache-nginx.md)
58+
- [Apache Tomcat (PKCS#12 keystore)](../deployment/tasks/tomcat.md)
5959

6060
**Microsoft Services:**
6161
- Microsoft Exchange (IMAP, SMTP, IIS, POP services)
6262
- Active Directory Federation Services (ADFS)
6363
- Remote Desktop Services (RDP Gateway, RDP Listener)
6464
- Routing and Remote Access Service (RAS)
65-
- IIS Centralized Certificate Store (CCS)
65+
- [IIS Centralized Certificate Store (CCS)](../deployment/tasks/ccs.md)
6666

6767
**Cloud & Container Platforms:**
6868
- Azure App Service

docs/guides/architecture/load-balanced-hosting.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ Centralized Certificate Store (CCS) is a feature you can enable in Windows to al
3535

3636
This requires that you manage your own https bindings in IIS (configured for CCS) as the standard built-in https deployment in *Certify Certificate Manager* does not configure CCS enabled https bindings for you (and you should use a deployment mode of "Certificate Store Only" or "No Deployment" as "Auto" would instead try to setup the https bindings for you).
3737

38+
There is also a general guide to [using CCS with Certify Certificate Manager](../../deployment//tasks/ccs.md) on Windows.
3839

3940
These recommendations assume you are simply load balancing your DNS name across multiple web servers (virtual machines etc).
4041

docs/hub/installation/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ The latest release notes for the app can be found at https://certifytheweb.com/h
3131

3232
## System Requirements
3333

34+
If you require deployment of Certificates from the hub to Windows hosts (Services, shares etc) then you should host the Hub on Windows. This will enable windows specific networking features which are generally unavailable on Linux.
35+
3436
You can self-host on Windows, macOS or Linux, or you can use your own choice of container environment (Docker, Kubernetes, Red Hat/IBM OpenShift etc).
3537

3638
The product internally uses .NET 9.0 or higher (self contained, you do not need to install .net) and specific supported operating systems are detailed here: https://github.com/dotnet/core/blob/main/release-notes/9.0/supported-os.md

0 commit comments

Comments
 (0)