SSL/TLS
HTTP must not be used in production environments. An SSL certificate is required for your Seqera instance to handle HTTPS traffic. Private certificates are supported, but require additional configuration during Seqera Enterprise installation and Nextflow execution.
AWS deployments: Manage SSL certificates with Amazon Certificate Manager (ACM)
Use Amazon Certificate Manager (ACM) to apply SSL certificates to your AWS deployment:
-
If you have an existing SSL certificate, see Importing certificates into AWS Certificate Manager.
-
If you don't have an existing SSL certificate, see Issuing and managing certificates.
Configure Seqera to trust your private certificate
If you secure related infrastructure (such as private Git repositories) with certificates issued by a private Certificate Authority, these certificates must be loaded into the Seqera Enterprise containers. You can achieve this in several ways.
Configure private certificate trust
- This guide assumes you're using the original containers supplied by Seqera.
- Replace
TARGET_HOSTNAME
,TARGET_ALIAS
, andPRIVATE_CERT.pem
with your unique values. - Previous instructions advised using
openssl
. The nativekeytool
utility is preferred as it simplifies steps and better accommodates private CA certificates.
Use Docker volume
- Retrieve the private certificate on your Seqera container host:
keytool -printcert -rfc -sslserver TARGET_HOSTNAME:443 > /PRIVATE_CERT.pem
- Modify the
backend
andcron
container configuration blocks indocker-compose.yml
:
CONTAINER_NAME:
# -- Other keys here like `image` and `networks`--
# Add a new mount for the downloaded certificate
volumes:
- type: bind
source: /PRIVATE_CERT.pem
target: /etc/pki/ca-trust/source/anchors/PRIVATE_CERT.pem
# Add a new keytool import line PRIOR to 'update-ca-trust' for the certificate
command: >
sh -c "keytool -import -trustcacerts -storepass changeit -noprompt -alias TARGET_ALIAS -file /etc/pki/ca-trust/source/anchor/TARGET_HOSTNAME.pem &&
update-ca-trust &&
/wait-for-it.sh db:3306 -t 60 &&
/tower.sh"
Use K8s ConfigMap
- Retrieve the private certificate on a machine with CLI access to your Kubernetes cluster:
keytool -printcert -rfc -sslserver TARGET_HOSTNAME:443 > /PRIVATE_CERT.pem
- Load the certificate as a
ConfigMap
in the same namespace where your Seqera instance will run:
kubectl create configmap private-cert-pemstore --from-file=/PRIVATE_CERT.pem
- Modify both the
backend
andcron
Deployment objects:
-
Define a new volume based on the certificate
ConfigMap
:spec:
template:
spec:
volumes:
- name: private-cert-pemstore
configMap:
name: private-cert-pemstore -
Add a volumeMount entry into the container definition:
spec:
template:
spec:
containers:
- name: CONTAINER_NAME
volumeMounts:
- name: private-cert-pemstore
mountPath: /etc/pki/ca-trust/source/anchors/PRIVATE_CERT.pem
subPath: PRIVATE_CERT.pem -
Modify the container start command to load the certificate prior to running your Seqera instance:
spec:
template:
spec:
containers:
- name: CONTAINER_NAME
command: ["/bin/sh"]
args:
- -c
- |
keytool -import -trustcacerts -cacerts -storepass changeit -noprompt -alias TARGET_ALIAS -file /PRIVATE_CERT.pem;
./tower.sh
Download on Pod start
- Modify both the
backend
andcron
Deployment objects to retrieve and load the certificate prior to running your Seqera instance:
spec:
template:
spec:
containers:
- name: CONTAINER_NAME
command: ["/bin/sh"]
args:
- -c
- |
keytool -printcert -rfc -sslserver TARGET_HOST:443 > /PRIVATE_CERT.pem;
keytool -import -trustcacerts -cacerts -storepass changeit -noprompt -alias TARGET_ALIAS -file /PRIVATE_CERT.pem;
./tower.sh
Configure the Nextflow launcher image to trust your private certificate
If you secure infrastructure such as private Git repositories or your Seqera Enterprise instance with certificates issued by a private Certificate Authority, these certificates must also be loaded into the Nextflow launcher container.
Import private certificates via pre-run script
- This configuration assumes you're using the default
nf-launcher
image supplied by Seqera. - Replace
TARGET_HOSTNAME
,TARGET_ALIAS
, andPRIVATE_CERT.pem
with your unique values. - Previous instructions advised using
openssl
. The nativekeytool
utility is preferred as it simplifies steps and better accommodates private CA certificates.
Add the following to your compute environment pre-run script:
keytool -printcert -rfc -sslserver TARGET_HOSTNAME:443 > /PRIVATE_CERT.pem
keytool -import -trustcacerts -cacerts -storepass changeit -noprompt -alias TARGET_ALIAS -file /PRIVATE_CERT.pem
cp /PRIVATE_CERT.pem /etc/pki/ca-trust/source/anchors/PRIVATE_CERT.pem
update-ca-trust