ste*_*ing 5 mongoose node.js amazon-elastic-beanstalk aws-documentdb-mongoapi aws-documentdb
我在 AWS Elastic Beanstalk (EB) 中有 2 个环境,运行 Node.js 应用程序,使用 Mongoose 框架连接到 DocumentDB。其中一个环境莫名其妙地停止工作,而另一个环境工作正常。两者都是从 CI/CD 构建服务器部署的,该服务器使用 EB CLI 来部署应用程序代码。
有问题的环境在nodejs.log中产生如下错误:
name: 'MongooseTimeoutError',
reason:
{ Error: unable to get local issuer certificate
at TLSSocket.onConnectSecure (_tls_wrap.js:1058:34)
at TLSSocket.emit (events.js:198:13)
at TLSSocket._finishInit (_tls_wrap.js:636:8)
name: 'MongoNetworkError',
[Symbol(mongoErrorContextSymbol)]: {} },
[Symbol(mongoErrorContextSymbol)]: {} }
Run Code Online (Sandbox Code Playgroud)
两者都使用相同的连接字符串,因为它们连接到同一个实例 mongodb://*****:*****@docdb-2019-08-**-**-**-**.cluster-**********.us-east-2.docdb.amazonaws.com:27017/db_name?ssl=true&ssl_ca_certs=/etc/ssl/certs/rds-combined-ca-bundle.pem&replicaSet=rs0
证书 pem 文件是用于两者的相同文件,并通过 EB .ebextensions 脚本部署到实例。
我尝试过的事情:
目前有点卡住了想法。
小智 2
有同样的问题..不确定这是否会随着证书到2019年的更改而中断..无论如何,我必须通过代码更改(将 sslCA 参数添加到下面的 Mongoose 连接方法中)并删除 ssl 证书位置来解决这个问题从连接字符串。
connect(uri, {useNewUrlParser: true,
useFindAndModify: false,
sslCA: [fs.readFileSync("rds-combined-ca-bundle.pem")]}, (err: any)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1870 次 |
| 最近记录: |