如何在 javascript 中创建一个可以使用 SSL 连接到数据库后端的池对象?

How to create a pool object in javascript that can connect to a database backend using SSL?

我遵循了有关如何在 PostgreSQL 上创建 Node JS 后端和 ReactJS 前端的指南,该指南运行良好,请参阅 here for more

quide的js池对象如下:

const Pool = require('pg').Pool
const pool = new Pool({
  user: 'my_user',
  host: 'localhost',
  database: 'my_database',
  password: 'postgres',
  port: 5432,
});

我尝试对使用 SSL 加密的 PostgreSQL Web 服务器执行相同的操作。此问题未标记 postgresql,因为 mysql 和其他数据库的池看起来相同。它也没有被标记 Linux 因为它应该在其他 OS.

上工作相同

如何从 javascript 中的池 class 创建一个可以使用 SSL 连接到 PostgreSQL 后端的池对象?

您需要保存证书,将其命名为 server-certificate.pem,在静态路径以 / 开头的地方(~ 对于您的用户主目录不起作用)。所以,你需要把它移到一个静止的地方。

我将文件复制到新创建的目录certificates,但这当然取决于您。为此,您需要超级用户权限。

/etc/certificates/server-certificate.pem

您需要加载 fs 并在 SSL 部分使用它,请参阅 How to establish a secure connection (SSL) from a Node.js API to an AWS RDS

const Pool = require('pg').Pool
const fs = require('fs');
const pool = new Pool({
  user: 'my_user',
  host: 'my_host',
  database: 'my_database',
  password: 'my_password',
  port: 22222,
  ssl: {
    ca: fs
      .readFileSync("/etc/certificates/server-certificate.pem")
      .toString()
  }
});