Self_signed_cert_in_chain

Guys, I am trying to use Directus in Docker, with a managed Digital Ocean database, and it seems it cannot connect to it due to SSL problems:

Error: self-signed certificate in certificate chain
at TLSSocket.onConnectSecure (node:_tls_wrap:1679:34)
at TLSSocket.emit (node:events:518:28)
at TLSSocket._finishInit (node:_tls_wrap:1078:8)
at ssl.onhandshakedone (node:_tls_wrap:864:12) {
code: ‘SELF_SIGNED_CERT_IN_CHAIN’
}

I found issues in GitHub, but no combination of keys worked for me. Here it is the relevant section from the compose file:

services:

:brain: Directus CMS

directus:
image: directus/directus:latest
container_name: directus
restart: unless-stopped
environment:
PORT: 8055
ADMIN_EMAIL: ${DIRECTUS_ADMIN_EMAIL}
ADMIN_PASSWORD: ${DIRECTUS_ADMIN_PASSWORD}
PUBLIC_URL: ${DIRECTUS_PUBLIC_URL}
DB_CLIENT: pg
DB_CONNECTION_STRING: ${PG_CONNECTION_STRING}
DB_SSL__CA_FILE: /ca-certificate.crt
volumes:
- ./ca-certificate.crt:/ca-certificate.crt
- directus_uploads:/directus/uploads
- directus_extensions:/directus/extensions
networks:
- prodnet

Do you have any idea how to fix this?

Hello, Alex,

I have used Neon for the database, and it has been working well for me, so I’m sharing the Docker Compose file with you in the hopes that it works for you as well.

Note: There are no sensitive values included, as I have replaced them with random strings to preserve the structure.

version: "3"
services:
  directus:
    image: directus/directus:11.2.1
    ports:
      - 8055:8055
    environment:

      SECRET: "HvUreudIo71NwtTIDiCLsn7y3FgqdWZptYMWTTeiAMliRyeNVq"
      KEY: "JYu4vb2a3fR3ur9aO77bqxHmvyhlyranlVsiv3EN5PjgqdHiYI"

      REDIS: "rediss://default:oE9R52QT4AUYzYRVO2biD5SHA1aZbGJJfrFYGXIASWakTaHHqp@big-mike-789654.upstash.io:6379"

      CACHE_ENABLED: "true"
      CACHE_AUTO_PURGE: "true"
      CACHE_STORE: "redis"

      DB_CLIENT: "pg"
      DB_HOST: "xyz-abc-pqr.ap-southeast-1.aws.neon.tech"
      DB_PORT: "5432"
      DB_DATABASE: "directus"
      DB_USER: "directus_owner"
      DB_PASSWORD: "zMyVkrMfwLDAmR6"
      DB_SSL: "true" 

      ADMIN_EMAIL: "khanahmad4527@gmail.com"
      ADMIN_PASSWORD: "0000"