mysql - 如何配置 sequalize & node mysql 以使用新的 aws rds root cert rds-ca-2019
问题描述
随着 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'
}
}
我想不出使用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
}
}
并通过证书验证:
// 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]
}
}
}
thx @jarmod 用于链接,soluto-nashville 的“Amazon RDS 与 Sequelize 的最佳安全实践”一文展示了解决方案
推荐阅读
- java - 无法发送自动短信
- oracle - 在 Oracle 中使用 when 子句控制触发器
- c# - 如何将不同的值从一个堆栈复制到另一个堆栈
- go - 如何在 Go 中习惯性地将数据库访问转换为函数
- shopify - 我正在使用 integrator.io 创建将 Shopify 交易发送到 NetSuite 中的银行存款的集成流程?但我收到以下错误消息?
- c# - 表适配器配置向导未能为 mysql 存储过程配置表适配器
- javascript - 我可以使用 forEach 更改许多变量吗?
- python - Django期初余额计算
- javascript - 如何将 JSON 数据插入表单字段
- regex - 正则表达式 - 如何确保字符串末尾没有点?