Introduction
By default, Cortex XSOAR is deployed with a self-signed SSL certificate. While suitable for initial setup and testing, production environments typically require a certificate issued by an internal or public Certificate Authority (CA) to eliminate browser warnings and establish trust with users and integrated systems.
This guide walks through replacing the default certificate with a custom SSL certificate.
The process is based on the official Palo Alto Networks documentation while including additional operational notes learned during deployment.
Official documentation:
- https://docs-cortex.paloaltonetworks.com/r/Cortex-XSOAR/6.14/Cortex-XSOAR-Administrator-Guide/Install-or-Renew-a-Custom-Certificate
Important
Replacing the SSL certificate requires restarting the Demisto service. Plan a maintenance window if the appliance is actively being used.
Warning
Before replacing the certificate, ensure you have a backup of the existing
cert.pemandcert.keyfiles. If the new certificate or private key is invalid, restoring the backups will quickly return the appliance to a working state.
Prerequisites
Before beginning, ensure you have:
- Administrative (
root) orsudoaccess to the XSOAR server - A server certificate issued for the XSOAR hostname
- The corresponding private key
- Any required intermediate certificates
- The root CA certificate (if applicable)
- An SCP client capable of transferring files to the server
Step 1 – Build the Certificate Chain
XSOAR expects the certificate chain to be contained within a single PEM file.
Create a new file using a text editor such as Notepad++ or Visual Studio Code and combine the certificates in the following order:
- Server (XSOAR) certificate
- Intermediate CA certificate(s)
- Root CA certificate
Each certificate must include the complete PEM headers and footers.
Example:
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Save the completed file with a .pem extension.
For example:
cert.pem
Transfer both the certificate chain and the matching private key to the XSOAR appliance using SCP.
Important
The certificate order is important. An incorrect certificate chain may cause browsers or integrated systems to report an incomplete or untrusted certificate chain.
Step 2 – Stop the Demisto Service
Log in to the appliance.
Stop the Demisto service before replacing the certificate files.
service demisto stop
Step 3 – Back Up the Existing Certificate
Navigate to the XSOAR installation directory.
cd /usr/local/demisto
Create backups of the current certificate and private key.
cp cert.pem cert.pem.bak
cp cert.key cert.key.bak
These backups allow you to quickly restore the previous configuration if necessary.
Step 4 – Replace the Certificate
Copy the new certificate chain into place.
cp new_cert_chain.pem /usr/local/demisto/cert.pem
Copy the private key.
cp new_key.key /usr/local/demisto/cert.key
Important
XSOAR expects these files to be named exactly:
cert.pemcert.keyIf different filenames are used, the service will not load the custom certificate.
Step 5 – Start the Demisto Service
Restart the service.
service demisto start
Allow the service several minutes to initialize before attempting to reconnect.
Verification
After the service has started:
- Browse to the XSOAR web interface.
- Verify the browser reports a trusted certificate.
- Confirm the certificate subject matches the expected hostname.
- Verify the certificate expiration date.
- Confirm the full certificate chain is presented correctly.
- Test from another workstation if browser caching is suspected.
If the old certificate still appears, clear the browser cache or test using a private/incognito browsing session.
Troubleshooting
If the XSOAR web interface fails to load after replacing the certificate:
- Verify the private key matches the certificate.
- Confirm the certificate chain is in the correct order.
- Verify the certificate file is valid PEM format.
- Confirm the filenames are
cert.pemandcert.key. - Restore the backup files if necessary.
If browsers report an incomplete certificate chain:
- Verify all required intermediate certificates are included.
- Ensure the root certificate appears last in the PEM file.
If the browser continues to display the old certificate:
- Clear the browser cache.
- Restart the browser.
- Verify you are connecting to the correct server.
Field Note
In my experience, the majority of SSL issues aren’t caused by XSOAR itself—they’re caused by an improperly constructed certificate chain. Taking a few extra minutes to verify the certificate order before copying the files to the appliance can save a considerable amount of troubleshooting afterward. Keeping backups of the original
cert.pemandcert.keyfiles also provides a quick recovery path if something goes wrong during the replacement process.