【问题标题】:How to connect via SSL to sequelize DB如何通过 SSL 连接以续集 DB
【发布时间】:2017-10-12 10:25:00
【问题描述】:

我似乎找不到任何关于 SEQUELIZE.JS 的文档,说明如何使用 CA.crt 来连接到位于远程服务器上的我的数据库。

我在选项中发现了一些东西,但我似乎无法弄清楚

我试过了

{
 'ssl': true
 'dialectOptions':{
   ssl: {
     ca: 'path/to/ca'
   }
 }     
}

还有其他一些东西,但似乎对我没有用。

谁能帮帮我?

编辑:

这是我在使用 ca 时遇到的错误

error connecting to db { Error: unable to verify the first certificate
at TLSSocket.<anonymous>

【问题讨论】:

标签: node.js sequelize.js


【解决方案1】:

由于您没有提及选择的后端数据库,我将提供一个 mysql 示例以及我建议您如何去做。

首先,直接使用dialect 确认连接,因此mysql2 根据需要提供变量:

const connection = mysql.createConnection({
  host: dbVars.host,
  user: dbVars.user,
  database: dbVars.database,
  password: dbVars.password,
  ssl: {
    key: cKey,
    cert: cCert,
    ca: cCA
  }
});

确认连接后,将其移至 Sequelize as:

const sequelize = new Sequelize(dbVars.database, dbVars.user, dbVars.password, {
  host: dbVars.host,
  dialect: 'mysql',
  dialectOptions: {
    ssl: {
      key: cKey,
      cert: cCert,
      ca: cCA
    }
  }
});

注意:正确加载证书是一个学习曲线,需要直接使用 import 使用 raw-loader。示例:

import cKey from 'raw-loader!../certs/client-key.pem'; 

【讨论】:

  • fs.fileReadSync 对我来说同样适用于阅读 .pem 文件。
  • docsfs.readFileSync
  • 如何获得cCertcCA
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-27
  • 1970-01-01
  • 2011-09-20
  • 2015-10-27
相关资源
最近更新 更多