PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak dodać certyfikat SSL (ca-cert) do zmiennych środowiskowych node.js, aby połączyć się z bazą danych Digital Ocean Postgres Managed Database?

W porządku, w końcu udało mi się to rozgryźć. Myślę, że problem był wielowierszowy i po prostu nie znałem dotenv dla mojego lokalnego środowiska programistycznego.

Udało mi się to wszystko uruchomić z moim kodem w ten sposób. Działało również z fs.readFileSync(), ale nie chciałem zatwierdzić tego w mojej kontroli źródła.

const { Pool } = require('pg')
const fs = require('fs')

const pgPool = new Pool({
user: process.env.PGUSER,
password: process.env.PGPASSWORD,
host: process.env.PGHOST,
database: process.env.PGDATABASE,
port: process.env.PGPORT,
ssl: {
    rejectUnauthorized: true,
    // ca: fs.readFileSync(
    //     `${process.cwd()}/cert/ca-certificate.crt`.toString()
    // ),
    ca: process.env.CA_CERT,
},
})
.on('connect', () => {
    console.log('connected to the database!')
})
.on('error', (err) => {
    console.log('error connecting to database ', err)
})

Teraz w moim config.env musiałem zrobić to tak:

CA_CERT="-----BEGIN CERTIFICATE-----\nVALUES HERE WITH NO SPACES AND A \n 
AFTER EACH LINE\n-----END CERTIFICATE-----"

Musiałem zachować to jako ciąg jednowierszowy, aby działał. Ale w końcu miałem połączyć się z

{rejectUnauthorized:true} 

W przypadku zmiennej środowiskowej platformy cyfrowej aplikacji oceanicznej skopiowałem wszystko, w tym podwójne cudzysłowy, i wkleiłem je tam. Wydaje się działać świetnie. Nie sądzę jednak, że będziesz w stanie ustawić to ustawienie na true z ich bazą danych deweloperskich o wartości 7 USD. Musiałem uaktualnić do zarządzanego, aby znaleźć jakikolwiek certyfikat CA do pobrania.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie Kubernetes do wdrażania PostgreSQL

  2. Jak wykonać kopię zapasową i przywrócić bazę danych PostgreSQL w systemie Windows7?

  3. Synchronizacja bazy danych 2 nie powiodła się

  4. Jak ustawić strefę czasową dla Postgres 9.4 na stałe?

  5. Połączenie Postgres JDBC w Eclipse Help