Skip to content

Commit a6e73f2

Browse files
Cortex-DMSDonna-Marie Smith
andauthored
Feature/20799 add support for multi domain certificates (#161)
* Added Multi Domain Certificate support to 2024.9 --------- Co-authored-by: Donna-Marie Smith <[email protected]>
1 parent ba26277 commit a6e73f2

File tree

9 files changed

+50
-30
lines changed

9 files changed

+50
-30
lines changed

.github/workflows/checklink.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
config: .htmltest.yml
4141
- name: Archive htmltest results
4242
if: always()
43-
uses: actions/upload-artifact@v2
43+
uses: actions/upload-artifact@v3
4444
# Note: Set ACTIONS_RUNTIME_TOKEN env variable to test with nektos/act
4545
with:
4646
name: htmltest-report

content/en/docs/2024.7/getting-started/on-premise/add-innovation-to-72/multiple-server-with-ha/prerequisites.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,7 @@ Innovation has a [gobetween][] load balancer included that isn't highly availabl
333333
[alternative load balancer]: {{< ref "#alternative-load-balancer-requirements" >}}
334334
[Anycast]: {{< url path="Anycast.MainDoc" >}}
335335
[Architecture]: {{< url path="Cortex.GettingStarted.OnPremise.AddInnovationTo72.MultipleServerWithHA.Architecture" >}}
336+
[Create Full DB Backup]: {{< url path="MSDocs.SqlServer.CreateFullDbBackup" >}}
336337
[C++ Redistributable]: {{< url path="MSDownload.CPlusPlusRedistributable.2013" >}}
337338
[CORTEX Service Portal]: {{< url path="Cortex.ServicePortal.MainDoc" >}}
338339
[gobetween]: {{< url path="GoBetween.MainDoc" >}}

content/en/docs/2024.9/getting-started/on-premise/add-innovation-to-72/multiple-server-with-ha/install-web-application-server/prerequisites.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,11 @@ In order to ensure that the correct certificate is used during the upgrade of {{
3131
<br />
3232
The Flow Debugger also requires an X.509 SSL certificate to be installed on the Web Application Server. This can use the same certificate as {{% ctx %}} Gateway, however it must have the following properties:
3333

34-
* Subject field must be in a wildcard format, pertaining to the domain of the Application Servers (e.g. `CN=*.domain.com`).
35-
* Subject alternative names must include any additional host names that should be able to be used to access the API Gateway Service.
34+
* Subject field must be in one of the following formats depending on whether a multi-domain or wildcard certificate is used:
35+
* Multi-domain certificate - If using the [gobetween][] load balancer this should be specified as the FQDN of the load balancer server (e.g. `CN=load-balancer.domain.com`). If using a different load balancer this must be specified as the FQDN of one of the application servers (e.g. `CN=application-server.domain.com`)
36+
* Wildcard certificate - wildcard format, pertaining to the domain of the Application Servers (e.g. `CN=*.domain.com`).
37+
* Subject alternative names must include any additional host names that should be able to be used to access the API Gateway Service. Additionally if using a multi-domain certificate:
38+
* The FQDN, NetBIOS Name and IP address of the web application server and all application servers must be added.
3639
* Certificate file must be in a .PFX file format, with a known password.
3740
* Certificate file must contain the full chain of certificates.
3841
* Certificate file must include the private key.

content/en/docs/2024.9/getting-started/on-premise/add-innovation-to-72/multiple-server-with-ha/prerequisites.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -258,10 +258,10 @@ The `Cortex.Innovation.Test.PortUsage.ps1` script is provided during installatio
258258
#### Application Servers
259259
260260
{{% alert title="Note" %}}
261-
For production platforms it is recommended that X.509 SSL wildcard certificates are obtained from a Certificate Authority and used for installation. For non-production platforms, certificates can be omitted from installation and it will create and use self-signed certificates. This may prevent 3rd parties that require valid certificate verification to access the API Gateway Service.
261+
For production platforms it is recommended that X.509 SSL multi-domain or wildcard certificates are obtained from a Certificate Authority and used for installation. For non-production platforms, certificates can be omitted from installation and it will create and use self-signed certificates. This may prevent 3rd parties that require valid certificate verification to access the API Gateway Service.
262262
{{% / alert %}}
263263
264-
An X.509 SSL wildcard certificate should be used to:
264+
An X.509 SSL multi-domain or wildcard certificate should be used to:
265265
266266
* Secure communication between the load balancer and the nodes on the Application Servers.
267267
* Secure communication between the Application Services.
@@ -271,8 +271,12 @@ An X.509 SSL wildcard certificate should be used to:
271271
272272
The certificate can be obtained from a Certificate Authority, such as [Let’s Encrypt](<https://letsencrypt.org/>), and must meet the following requirements:
273273
274-
* Subject field must be in a wildcard format, pertaining to the domain of the Application Servers (e.g. `CN=*.domain.com`).
275-
* Subject alternative names must include any additional host names that should be able to be used to access the API Gateway Service.
274+
* Subject field must be in one of the following formats depending on whether a multi-domain or wildcard certificate is used:
275+
* Multi-domain certificate - If using the [gobetween][] load balancer this should be specified as the FQDN of the load balancer server (e.g. `CN=load-balancer.domain.com`). If using a different load balancer this must be specified as the FQDN of one of the application servers (e.g. `CN=application-server.domain.com`)
276+
* Wildcard certificate - wildcard format, pertaining to the domain of the Application Servers (e.g. `CN=*.domain.com`).
277+
* Subject alternative names must include any additional host names that should be able to be used to access the API Gateway Service. Additionally if using a multi-domain certificate:
278+
* The FQDN, NetBIOS Name and IP address of all application servers must be added.
279+
* Optionally, the FQDN, NetBIOS Name and IP address of the web application server must be added if the same certificate will be used for the [web application server][].
276280
* Certificate file must be in a .PFX file format, with a known password.
277281
* Certificate file must contain the full chain of certificates.
278282
* Certificate file must include the private key.
@@ -281,20 +285,21 @@ The certificate can be obtained from a Certificate Authority, such as [Let’s E
281285
282286
This file should be placed in a known location on the Application Server where the installation scripts will be run. This location will be required when running the installation script.
283287
284-
If required, a separate X.509 SSL certificate can be obtained to be used by the load balancer to communicate with the Application Services. It must meet all of the other requirements laid out above, except the subject field can also be the FQDN of the load balancer (e.g. `CN=machine-name.domain.com`).
288+
If required, a separate X.509 SSL certificate can be obtained to be used by the load balancer to communicate with the Application Services. It must meet all of the other requirements laid out above, except the subject field can also be the FQDN of the load balancer (e.g. `CN=load-balancer.domain.com`).
285289
286290
#### Web Application Server
287291
288-
{{% ctx %}} Gateway requires an X.509 SSL certificate to be installed on the Web Application Server. The certificate must have the following properties:
292+
{{% ctx %}} Gateway requires an X.509 SSL certificate to be installed on the Web Application Server. This can be the same certificate as used for the application servers or a different certificate.
293+
294+
The certificate must have the following properties:
289295
290296
* Enhanced Key Usage: `Server Authentication` and `Client Authentication`
291297
* Subject Alternative Names (SAN): At minimum the FQDN of the Server. It can also include NetBIOS Name, IP address, localhost, 127.0.0.1
292298
293299
If the user tries to navigate to an address not in the SAN list, then they will receive a certificate error.
294300
295301
{{% alert title="Important" color="warning" %}}
296-
Certificates, wildcard certificates, auto-generated self-signed certificates and manually created self-signed certificates can be used. However, self-signed certificates are not recommended for production instances.
297-
Details on how to create a self-signed certificate can be found at {{< ahref path="Cortex.GettingStarted.OnPremise.InstallInnovationOnly.Advanced.CreateSelfSignedCertificates" title="Create Self-Signed Certificates" >}}.
302+
Multi-domain certificates, wildcard certificates, auto-generated self-signed certificates and {{< ahref path="Cortex.GettingStarted.OnPremise.InstallInnovationOnly.Advanced.CreateSelfSignedCertificates" title="manually created self-signed certificates" >}} can be used. However, self-signed certificates are not recommended for production instances.
298303
{{% /alert %}}
299304
300305
More information about importing the certificate is given during installation.
@@ -345,4 +350,5 @@ Innovation has a [gobetween][] load balancer included that isn't highly availabl
345350
[Recommended Architecture]: {{< url path="Cortex.GettingStarted.OnPremise.AddInnovationTo72.MultipleServerWithHA.RecommendedArchitecture" >}}
346351
[SSL Best Practices]: {{< url path="Cortex.GettingStarted.OnPremise.InstallInnovationOnly.Advanced.SSLBestPractices" >}}
347352
[Upgrading Gateway]: {{< url path="Cortex.GettingStarted.OnPremise.AddInnovationTo72.MultipleServerWithHA.ConfigureCortexGatewayInstallationScriptNew" >}}
353+
[web application server]: {{< ref "#web-application-server" >}}
348354
[Web Deploy]: {{< url path="MSDownload.WebDeploy" >}}

content/en/docs/2024.9/getting-started/on-premise/install-innovation-only/advanced/rollover-certificates.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,12 @@ A new, valid X.509 certificate needs to be obtained to update the certificates.
2626

2727
The certificate can be obtained from a Certificate Authority, such as [Let’s Encrypt](<https://letsencrypt.org/>), and must meet the following requirements:
2828

29-
* Subject parameter must be in a wildcard format, pertaining to the domain of the Application Servers (e.g. `CN=*.domain.com`).
30-
* Subject alternative names must include any additional host names that should be able to be used to access the API Gateway Service.
29+
* Subject field must be in one of the following formats depending on whether a multi-domain or wildcard certificate is used:
30+
* Multi-domain certificate - If using the gobetween load balancer this should be specified as the FQDN of the load balancer server (e.g. `CN=load-balancer.domain.com`). If using a different load balancer this must be specified as the FQDN of one of the application servers (e.g. `CN=application-server.domain.com`)
31+
* Wildcard certificate - wildcard format, pertaining to the domain of the Application Servers (e.g. `CN=*.domain.com`).
32+
* Subject alternative names must include any additional host names that should be able to be used to access the API Gateway Service. Additionally if using a multi-domain certificate:
33+
* The FQDN, NetBIOS Name and IP address of all application servers must be added.
34+
* Optionally, the FQDN, NetBIOS Name and IP address of the web application server must be added if the same certificate is used for the web application server.
3135
* Certificate file must be in a .PFX file format, with a known password.
3236
* Certificate file must contain the full chain of certificates.
3337
* Certificate file must include the private key.
@@ -36,7 +40,7 @@ The certificate can be obtained from a Certificate Authority, such as [Let’s E
3640

3741
This file should be placed in a known location on the Application Server where the certificate update script will be run. This location will be required when running the update script.
3842

39-
If required, a separate X.509 SSL certificate can be obtained to be used by the load balancer to communicate with the Application Services. It must meet all of the other requirements laid out above, except the subject parameter can also be the FQDN of the load balancer (e.g. `CN=machine-name.domain.com`).
43+
If required, a separate X.509 SSL certificate can be obtained to be used by the load balancer to communicate with the Application Services. It must meet all of the other requirements laid out above, except the subject parameter can also be the FQDN of the load balancer (e.g. `CN=load-balancer.domain.com`).
4044

4145
### Configure Update Certificates Script
4246

content/en/docs/2024.9/getting-started/on-premise/install-innovation-only/multiple-server-with-ha/install-web-application-server/prerequisites.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,19 @@ If the user tries to navigate to an address not in the SAN list, then they will
4444
<br/>
4545
For the Flow Debugger, the certificate must have the following properties:
4646

47-
* Subject field must be in a wildcard format, pertaining to the domain of the Application Servers (e.g. `CN=*.domain.com`).
48-
* Subject alternative names must include any additional host names that should be able to be used to access the API Gateway Service.
47+
* Subject field must be in one of the following formats depending on whether a multi-domain or wildcard certificate is used:
48+
* Multi-domain certificate - If using the [gobetween][] load balancer this should be specified as the FQDN of the load balancer server (e.g. `CN=load-balancer.domain.com`). If using a different load balancer this must be specified as the FQDN of one of the application servers (e.g. `CN=application-server.domain.com`)
49+
* Wildcard certificate - wildcard format, pertaining to the domain of the Application Servers (e.g. `CN=*.domain.com`).
50+
* Subject alternative names must include any additional host names that should be able to be used to access the API Gateway Service. Additionally if using a multi-domain certificate:
51+
* The FQDN, NetBIOS Name and IP address of the web application server and all application servers must be added.
4952
* Certificate file must be in a .PFX file format, with a known password.
5053
* Certificate file must contain the full chain of certificates.
5154
* Certificate file must include the private key.
5255
* Key Usage extension must have a value of `Digital Signature, Key Encipherment (a0)`.
5356
* Enhanced Key Usage must include `Server Authentication` and `Client Authentication`.
5457

5558
{{% alert title="Important" color="warning" %}}
56-
Certificates, wildcard certificates, auto-generated self-signed certificates and manually created self-signed certificates can be used. However, self-signed certificates are not recommended for production instances.
57-
Details on how to create a self-signed certificate can be found at {{< ahref path="Cortex.GettingStarted.OnPremise.InstallInnovationOnly.Advanced.CreateSelfSignedCertificates" title="Create Self-Signed Certificates" >}}.
59+
Multi-domain certificates, wildcard certificates, auto-generated self-signed certificates and {{< ahref path="Cortex.GettingStarted.OnPremise.InstallInnovationOnly.Advanced.CreateSelfSignedCertificates" title="manually created self-signed certificates" >}} can be used. However, self-signed certificates are not recommended for production instances.
5860
<br />
5961
It is possible to reuse the Flow Debugger certificate for {{% ctx %}} Gateway; If doing so, you must {{< ahref path="Cortex.GettingStarted.OnPremise.InstallInnovationOnly.MultipleServerWithHA.AssignCertificateFriendlyNameNew" title="Assign a Certificate Friendly Name" >}} after the debugger has been installed and set the `ImportCertificate` parameter to `$false` in {{< ahref path="Cortex.GettingStarted.OnPremise.InstallInnovationOnly.MultipleServerWithHA.ConfigureCortexGatewayInstallationScriptNew" title="Configure CORTEX Gateway Installation Script" >}} to ensure use of the correct certificate and to prevent it from being overwritten.
6062
{{% /alert %}}

0 commit comments

Comments
 (0)