如何通过SSL连接到sequelize DB

时间:2017-05-13 03:29:20

标签: node.js sequelize.js

我似乎无法找到 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>

1 个答案:

答案 0 :(得分:2)

由于您没有提及所选择的后端数据库,我将提供一个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';