首页 > 解决方案 > 需要 SSL 连接。请指定 SSL 选项并重试

问题描述

我使用 azure postgres,所以当我禁用 SSL 时它工作正常,但我希望启用 SSL 连接,当我从 azure 启用时,然后当我启动我的应用程序错误:SSL connection is required. Please specify SSL options and retry此错误多次发生

在 azure Azure Docs for SSL的文档中的位置 。这是我的连接字符串

connection: {
        database: process.env.POSTGRES_DATABASE || 'postgres',
        port: process.env.POSTGRES_PORT || 5432,
        user: process.env.POSTGRES_USER || 'my@-username',
        host: process.env.POSTGRES_HOST || 'postgres.db.postgres.database.azure.com',
        password: process.env.POSTGRES_PASSWORD || 'postpass',
        sslmode: 'require',
        }

根据 azure docs 我指定sslmode:require但它不起作用是任何人都面临同样的错误并得到了解决方案然后让我知道,我从过去 5 天开始就陷入了这个错误。

标签: node.jspostgresqlazuressltls1.2

解决方案


关于这个问题,请参考以下步骤

  1. 下载SSL 证书。更多详情,请参考这里

  2. 代码

const pg = require("pg");
const fs = require("fs");
const config = {
  host: "<>.postgres.database.azure.com",
  user: "<>",
  password: "<>",
  database: "postgres",
  port: 5432,
  ssl: {
    cert: fs.readFileSync("<the cert path>"),
    rejectUnauthorized: true,
  },
};

const client = new pg.Client(config);

client.connect((err) => {
  if (err) throw err;
  else {
    console.log("success");
  }
});
const query = "SELECT * FROM inventory;";

client
  .query(query)
  .then((res) => {
    const rows = res.rows;
    console.log(`Read: ${JSON.stringify(rows)}`);
    process.exit();
  })
  .catch((err) => {
    console.log(err);
  });

在此处输入图像描述


推荐阅读