Node.js MySQL连接池如何设置对应JDBC的useSSL=true?
在Node.js MySQL连接池中开启SSL的方法
要实现对应JDBC中useSSL=true的SSL连接,你可以通过在连接池配置中添加ssl参数来完成,分两种常见场景处理:
1. 基础开启SSL(对应useSSL=true)
如果你的MySQL服务器使用权威CA颁发的证书,直接在配置中设置ssl: true即可:
mysql.createPool({ host: dbHost, user: dbUser, password: dbPassword, database: dbName, port: dbPort, timezone: 'utc', ssl: true // 开启SSL连接,等效于JDBC的useSSL=true });
2. 自签证书场景
如果服务器使用自签SSL证书,需要指定CA证书文件路径来完成验证:
const fs = require('fs'); mysql.createPool({ host: dbHost, user: dbUser, password: dbPassword, database: dbName, port: dbPort, timezone: 'utc', ssl: { ca: fs.readFileSync('/path/to/your/ca-cert.pem') // 替换为实际的CA证书路径 } });
额外说明
- 若服务器要求双向SSL认证(即客户端需提供证书),可在
ssl对象中添加cert(客户端证书)和key(客户端密钥)参数,同样用fs.readFileSync读取对应文件。 - 生产环境中禁止使用
ssl: { rejectUnauthorized: false }跳过证书验证,这会引入严重安全风险。
内容的提问来源于stack exchange,提问作者Sumith Chalil
相关产品推荐
相关产品推荐

