如何使用 SSL 和 Nodejs 为 Digital Ocean Managed Postgres 数据库创建连接池?
How to Create Connection Pools for Digital Ocean Managed Postgres Database using SSL with Nodejs?
我用 nodejs 和 express 写了一个 API。我的数据库被黑了,我决定使用 Digital Ocean Managed Database。 Digital Ocean Managed 数据库需要 SSL,它们只为您提供一个 CA 证书。在所有教程中,SSL 需要 3 个文件。我没有找到任何关于如何仅将 node-pg 与一个文件连接的教程。我终于找到了解决方案,我想与社区分享。希望我可以节省几个小时的挖掘时间。
Digital Ocean 为您提供的证书是根证书而非客户端证书。在 node-pg 中,cert
指的是客户端证书,CA
指的是根证书。 CA
选项是应该使用的选项,而不是 Cert
。
- CA:root.crt(对于传入消息;Digital Ocean 给你这个)
- 密钥:postgresql.key(您不需要)
- 证书:客户端证书(您不需要)
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()
}
}
如果这个答案对您有用,请点个赞,这样其他人也可以找到它。
我用 nodejs 和 express 写了一个 API。我的数据库被黑了,我决定使用 Digital Ocean Managed Database。 Digital Ocean Managed 数据库需要 SSL,它们只为您提供一个 CA 证书。在所有教程中,SSL 需要 3 个文件。我没有找到任何关于如何仅将 node-pg 与一个文件连接的教程。我终于找到了解决方案,我想与社区分享。希望我可以节省几个小时的挖掘时间。
Digital Ocean 为您提供的证书是根证书而非客户端证书。在 node-pg 中,cert
指的是客户端证书,CA
指的是根证书。 CA
选项是应该使用的选项,而不是 Cert
。
- CA:root.crt(对于传入消息;Digital Ocean 给你这个)
- 密钥:postgresql.key(您不需要)
- 证书:客户端证书(您不需要)
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()
}
}
如果这个答案对您有用,请点个赞,这样其他人也可以找到它。