node.js - 如何使用 SSL 和 Nodejs 为 Digital Ocean Managed Postgres 数据库创建连接池?
问题描述
我使用 nodejs 和 express 编写了一个 API。我的数据库被黑了,我决定使用 Digital Ocean Managed Database。Digital Ocean Managed 数据库需要 SSL,他们只为您提供一个 CA 证书。在所有的教程中,SSL 需要 3 个文件。我没有找到任何关于如何仅使用一个文件连接 node-pg 的教程。我终于找到了解决方案,我想与社区分享。希望我能节省几个小时的挖掘时间。
解决方案
Digital Ocean 为您提供的证书是根证书而不是客户端证书。在 node-pgcert
中是指客户端证书并CA
指的是根证书。CA
option 是应该使用的选项,而不是Cert
.
- CA:root.crt(用于传入消息;Digital Ocean 给你这个)
- 密钥:postgresql.key(你不需要它)
- Cert:客户端证书(你不需要它)
const config = {
database: 'database-name',
host: 'host-or-ip',
user: 'username',
password: 'password',
port: 1234,
// this object will be passed to the TLSSocket constructor
ssl: {
ca: fs.readFileSync('/path/to/digitalOcean/certificate.crt').toString()
}
}
如果这个答案对您有用,请竖起大拇指,以便其他人也能找到它。
推荐阅读
- angular - 如何让 Creative Tim Angular Material Pro 在 JVectorMap 上渲染区域?
- python - 如果条件满足,分配标识符
- android - Mockito - RuntimeException:存根!模拟 RecyclerView.Adapter 时
- voltdb - 搜索 VoltDB ODBC 驱动程序
- html - 垂直对齐标签并选择左侧的文本
- microsoft-graph-api - Sharepoint Drive Delta 令牌不反映公共链接更改
- controller - TYPO3 Flash Message 有效但没有样式
- java - 在不同的 docker 容器上运行的 Spring Boot 和 Angular 应用程序访问相同的端口 443?
- regex - 从仅匹配正则表达式模式的字符串中提取字符
- mysql - 使用列中的开始和结束索引修剪不需要的文本