我似乎无法找到 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>
答案 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';