OK, encontrei a resposta navegando no código-fonte do sequelize:https://github.com/sequelize/sequelize/blob/master/lib/dialects/postgres/connection-manager.js#L39
Para ativar SSL para conexões PG você não precisa de
native: true
ou ssl: true
mas dialectOptions.ssl: true
então o seguinte finalmente funcionou:sequelize = new Sequelize(process.env.DATABASE_URL, {
dialect: 'postgres',
protocol: 'postgres',
dialectOptions: {
ssl: true
}
});
Para contornar o
self signed certificate
bug no node-postgres
versão 8 mencionada em SequelizeConnectionError:certificado autoassinado que você pode usar:sequelize = new Sequelize(process.env.DATABASE_URL, {
dialect: 'postgres',
protocol: 'postgres',
dialectOptions: {
ssl: {
require: true,
rejectUnauthorized: false
}
}
});