OK, ho trovato la risposta sfogliando il codice sorgente di sequelize:https://github.com/sequelize/sequelize/blob/master/lib/dialects/postgres/connection-manager.js#L39
Per attivare SSL per connessioni PG non è necessario native: true
o ssl: true
ma dialectOptions.ssl: true
quindi alla fine ha funzionato quanto segue:
sequelize = new Sequelize(process.env.DATABASE_URL, {
dialect: 'postgres',
protocol: 'postgres',
dialectOptions: {
ssl: true
}
});
Per aggirare il self signed certificate
bug su node-postgres
versione 8 menzionata in SequelizeConnectionError:certificato autofirmato che puoi utilizzare invece:
sequelize = new Sequelize(process.env.DATABASE_URL, {
dialect: 'postgres',
protocol: 'postgres',
dialectOptions: {
ssl: {
require: true,
rejectUnauthorized: false
}
}
});