Подключение к базе данных psql heroku с локального сервера - получение ошибки ssl

Я пытаюсь подключиться к моей базе данных postgreSQL на героку из моего экспресс-приложения. Это отлично работает, когда экспресс-приложение также развернуто на героку, но я не могу подключиться к базе данных при локальном запуске экспресс-приложения.

const db = require('knex')({
  client: 'pg',
  connection: ${process.env.DATABASE_URL}?ssl=true,
});

Я получаю эту ошибку: err: Error: self signed certificate.

Как я могу это решить?


person brycelikesdogs    schedule 22.04.2020    source источник


Ответы (2)


Итак, изначально я использовал строку подключения, вместо этого я использовал это:

connection: {
    host: process.env.PRODUCTION_HOST,
    user: process.env.PRODUCTION_USER,
    password: process.env.PRODUCTION_PASSWORD,
    database: process.env.PRODUCTION_DATABASE,
    ssl: { rejectUnauthorized: false }
  },

когда у меня было ssl: true это не сработало. Но затем я изменил его на указанный выше, где ssl: { rejectUnauthorized: false }, и пока он работает нормально.

person brycelikesdogs    schedule 22.04.2020

Другой вариант — использовать

connection: {
  connectionString: process.env.DATABASE_URL,
  ssl: { rejectUnauthorized: false },
},
person skoll    schedule 30.10.2020
comment
Я все еще получаю err: Error: self signed certificate, несмотря на то, что добавил ssl: { rejectUnauthorized: false }, есть идеи @skoll? - person J86; 07.02.2021
comment
@ J86 Трудно сказать. Возможно ли, что соединение инициализировано где-то еще с другими настройками? Или сам URL-адрес БД содержит конфликтующие настройки SSL? Это должно быть тем, что вам нужно. - person skoll; 08.02.2021