web-dev-qa-db-fra.com

Erreur Knex Heroku: Certificat auto-signé

Je continue à obtenir cette erreur:

Error: self signed certificate

Lors de l'exécution de cette commande dans le terminal:

knex migrate:latest --env production

Mon knexfile.js

       require('dotenv').config(); 
module.exports = {
      development: {
        client: "pg",
        connection: {
          Host: "localhost",
          database: "my-movies"
        }
      },

      production: {
        client: "pg",
        connection: process.env.DATABASE_URL
      }
    };

Mon fichier .env:

DATABASE_URL=<my_database_url>?ssl=true

Heroku app Info:

Addons:         heroku-postgresql:hobby-dev
Auto Cert Mgmt: false
Dynos:
Git URL:        https://git.heroku.com/path-name.git
Owner:          [email protected]
Region:         us
Repo Size:      0 B
Slug Size:      0 B
Stack:          heroku-18
Web URL:        https://my-appname.herokuapp.com/

J'ai essayé de mettre une paire de valeur clé dans la production dans le knexfile de SSL: true et je reçois la même erreur. Je l'ai fait de cette façon dans le passé, plusieurs fois et je n'ai jamais eu cette question. Je me demande si Heroku a changé quelque chose que tout en cherchant à leurs documents, je n'ai rien trouvé.

8
dfrancese

Cela est dû à un changement de rupture de PG @ ^ 8 (2020/02/25) cf. Ce forum d'aide Herok .

Vous pouvez obtenir le annonce complète pg @ ^ 8 mais voici le passage pertinent:

Maintenant, nous utiliserons les options SSL par défaut sur TLS.Connect, qui incluent la mise en place de RejectUnauthorisé. Cela signifie que votre tentative de connexion peut échouer si vous utilisez un certificat auto-signé.

Et il semble que Heroku utilise des certificats auto-signés quelque part.

solutions possibles:

  • déclassement à pg @ ^ 7
  • indiquez PG @ ^ 8 d'ignorer les certificats problématiques ssl: { rejectUnauthorized: false } (voir annonce lié ci-dessus)
  • trouvez un moyen de télécharger et de faire confiance au certificat instructions
2
Offirmo