Update the SSL Options for UI

This page explains how to update volume mounts and configure SSL options to secure the Pulse Web UI.

It covers how to:

  • Update volume mounts to provide access to SSL files.
  • Manage SSL certificates using symlinks for automatic renewal.
  • Specify custom SSL_KEYDIR and SSL_CERTDIR paths.
  • Use the SSL_PASSPHRASE variable for password-protected private keys.

These steps ensure that Pulse securely accesses the required SSL/TLS certificates inside the container and keeps them up to date.

Update Volume Mounts in ad-core.yml for ad-graphql

To enable secure access to SSL/TLS certificates and internal security keys, the ad-graphql service requires access to specific directories on the host system. This is achieved by configuring volume mounts in the ad-core.yml file.

Volume mounts allow the container to read files from the host file system without embedding them directly into the image.

Required Mounts

The following host directories must be mounted into the ad-graphql container:

Host PathDescriptionMount Mode
/etc/letsencrypt/live/pulse.company.comContains SSL/TLS certificates issued by Let’s Encrypt for pulse.company.com.Read-only
/opt/security/pki/Contains internal PKI files or security certificates required for secure inter-service communication.Read-only

Configuration

Update the ad-core.yml file under the ad-graphql service definition to include the following volume mounts:

Bash
Copy
  • Use the:ro (read-only) flag to prevent modification of sensitive certificate files.

  • Ensure that the host paths exist and the container has appropriate read permissions.

  • If you are using Docker Compose, apply the updated configuration by running

    • docker-compose -f ad-core.yml up -d ad-graphql
  • For Kubernetes-based deployments, the equivalent configuration should be applied via volume and volumeMounts definitions in the Deployment or Pod spec.

A symlink (symbolic link) is a shortcut that points to your real certificate file — useful if your certificates are managed by another service or auto-renewed (like Let’s Encrypt).

Example:

Bash
Copy

Pulse still reads ssl.crt and ssl.key, but those files point to the latest certificates automatically.

Using a Custom SSL Key and Certificate Directories

If your SSL certificate and key files are stored in a custom directory, point to that path using the SSL KEYDIR and SSL CERTDIR variables in the ad-core.yml > graphql section.

Example:

Bash
Copy

The certificate directory must be accessible to the Pulse container user (user-id: 1000).> > Ensure the directory is mounted inside the container and readable by the Pulse services.

Using SSL_PASSPHRASE

If your SSL private key file (ssl.key) is password-protected, provide that password using the SSL_PASSPHRASE environment variable in the ad-core.yml > graphql section.

Bash
Copy

This allows Pulse to automatically unlock and use the SSL private key when starting the web service.

Example Configuration

This example section describes how to configure the ad-graphql service to use SSL certificates through symbolic links (symlinks).

This configuration maintains read-only access to PKI-managed certificate directories while allowing writable symlink management inside the container.

Before you begin

  • Ensure that PKI-managed SSL files are available under: /opt/security/pki/nodes/barclays-pulse.acceldata.com/certs and /opt/security/pki/nodes/barclays-pulse.acceldata.com/private
  • Confirm that the ad-graphql Docker image supports shell commands for creating symlinks.

Steps

  1. Open the ad-core.yml file.
  2. Locate the ad-graphql service section.
  3. Update the configuration with the following example to create writable symlinks.
Bash
Copy

Verification

To confirm the symlinks are created correctly, run:

Bash
Copy

Expected output:

Bash
Copy
  • The writable GraphQL-SSL volume allows safe symlink creation inside the container.
  • The PKI directories remain read-only for security.
  • Update the paths in ln -sf if your certificate or key names differ.
  • Ensure the startup command matches the entry point of your image.
  • This setup supports automatic certificate renewal (e.g., via Let’s Encrypt).

Summary

VariablePurpose
Volume MountsMake host directories (e.g., /etc/letsencrypt/... and /opt/security/pki/) accessible inside the container so the Pulse services can read SSL files.
SymlinksKeep Pulse certificates updated automatically by linking to renewed certificates (e.g., Let’s Encrypt).
SSL_KEYDIR / SSL_CERTDIRDefine where the SSL certificate and key files are located inside the container.
SSL_PASSPHRASEUnlock password-protected private keys for use by the Pulse Web UI.
SSL_ENABLED / SSL_ENFORCEDEnable and enforce HTTPS for secure UI and API access.
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard