小编ste*_*ing的帖子

无法确定与 DocumentDB 的 Mongoose SSL 连接错误

我在 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 脚本部署到实例。

我尝试过的事情:

  • 连接到问题环境的 EC2 实例,安装了 mongodb shell,并且能够使用 Mongo 连接字符串中指定的证书成功连接到 DocumentDB 实例。
  • 通过 Elastic Beanstalk Web 管理控制台重建 EB 环境。

目前有点卡住了想法。

mongoose node.js amazon-elastic-beanstalk aws-documentdb-mongoapi aws-documentdb

5
推荐指数
1
解决办法
1870
查看次数