Strapi SSL Connection Error with Digital Ocean PostgreSQL Database

71 Views Asked by At

I'm running a Strapi application connected to a PostgreSQL database on DigitalOcean, but I'm encountering a "self-signed certificate" error. Despite correctly setting the DATABASE_SSL environment variable and using the DigitalOcean provided CA certificate in my config/database.js file, I still face SSL verification issues when trying to connect to the database.

I'm looking for solutions to resolve this SSL certificate trust issue in a Strapi-PostgreSQL setup.

│   Error: self-signed certificate                              │
│       at TLSSocket.onConnectSecure (node:_tls_wrap:1545:34)   │
│       at TLSSocket.emit (node:events:513:28)                  │
│       at TLSSocket.emit (node:domain:489:12)                  │
│       at TLSSocket._finishInit (node:_tls_wrap:959:8)         │
│       at ssl.onhandshakedone (node:_tls_wrap:743:12)

Code

var fs = require('fs');

module.exports = ({ env }) => ({
  connection: {
    client: 'postgres',
    connection: {
      host: env('DATABASE_HOST'),
      port: env.int('DATABASE_PORT'),
      database: env('DATABASE_NAME', 'strapi'),
      user: env('DATABASE_USERNAME','strapi'),
      password: env('DATABASE_PASSWORD','strapi'),
      ssl: env.bool('DATABASE_SSL', false) ? {
        rejectUnauthorized: env.bool('DATABASE_SSL_REJECT_UNAUTHORIZED', false),
        ca: fs.readFileSync(env('PATH_TO_CA_CERT')).toString(),
      } : undefined,
    },
    acquireConnectionTimeout: 1000000,
    pool: {
      min: 0,
      max: 4,
      acquireTimeoutMillis: 300000,
      createTimeoutMillis: 300000,
      destroyTimeoutMillis: 300000,
      idleTimeoutMillis: 30000,
      reapIntervalMillis:1000,
      createRetryIntervalMillis: 2000
    },
  },
});
0

There are 0 best solutions below