Man*_*uel 2 mysql ssl amazon-rds node.js sequelize.js
随着 AWS 更改 2019 年 rds 服务的根 ssl 证书,2015 年的旧证书将在 03/2020 年失去有效性。请参阅https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html
如何配置 sequalize 以使用新的 rds-ca-2019 证书?
// current sequalize aws rds configuration as of working with 2015 cert
var sequelizeConfig = {
...
host: "xyz.rds.amazonaws.com",
dialectOptions": {
ssl: 'Amazon RDS'
}
}
Run Code Online (Sandbox Code Playgroud)
我无法找到使用sequalize 3.x手动添加证书的任何选项
确保更新到最新的节点 mysql 软件包,这可能会解决将来的问题。
截至目前,新的 aws rds-ca-2019 ca 证书似乎尚未合并。https://github.com/mysqljs/mysql/pull/2280
没有 ca 验证的临时修复:
var sequelizeConfig = {
...
host: "xyz.rds.amazonaws.com",
dialectOptions: {
ssl: true
}
}
Run Code Online (Sandbox Code Playgroud)
并进行证书验证:
// get rds-ca-2019 certificate directly from aws https://s3.amazonaws.com/rds-downloads/rds-ca-2019-root.pem to ensure validity!!!
const fs = require('fs');
const rdsCa = fs.readFileSync(__dirname + '/rds-ca-2019-root.pem');
var sequelizeConfig = {
...
host: "xyz.rds.amazonaws.com",
dialectOptions: {
ssl: {
rejectUnauthorized: true,
ca: [rdsCa]
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢 @jarmod 的链接以及soluto-nashville 的文章“Amazon RDS with Sequelize 的最佳安全实践” ,展示了解决方案
归档时间: |
|
查看次数: |
3862 次 |
最近记录: |