Mongo Express容器能否通过TLS连接到MongoDB?

Mongo Express容器能否通过TLS连接到MongoDB?,mongodb,docker-compose,tls1.2,mongo-express,Mongodb,Docker Compose,Tls1.2,Mongo Express,我有一个mongo容器,从requireTLSTLS模式开始,还有一个mongo express容器。Mongo express似乎无法使用TLS连接到Mongo 我的docker compose.yml: 版本:“3.1” 服务: mongodb1: 图片:“mongo:4.2” 集装箱名称:“mongodb-001” 端口: - '27017:27017' 环境: MONGO_INITDB_ROOT_用户名:“admin” MONGO_INITDB_ROOT_密码:“adminpasswd”

我有一个mongo容器,从
requireTLS
TLS模式开始,还有一个mongo express容器。Mongo express似乎无法使用TLS连接到Mongo

我的
docker compose.yml

版本:“3.1”
服务:
mongodb1:
图片:“mongo:4.2”
集装箱名称:“mongodb-001”
端口:
- '27017:27017'
环境:
MONGO_INITDB_ROOT_用户名:“admin”
MONGO_INITDB_ROOT_密码:“adminpasswd”
卷数:
-“/mongo数据:/data/db”
-“/etc_mongod.conf:/etc/mongod.conf”
-“/证书:/etc/证书:ro”
命令:
-“--tlsMode”
-“首选项”
-“--tlsDisabledProtocols”
-“没有”
-“--tlsCertificateKeyFile”
-“/etc/certificates/certificateKey.pem”
-“--tlsCAFile”
-“/etc/certificates/CA.crt”
-“--TLSALLOWConnections无证书”
mongo express:
图片:“mongo express:最新”
集装箱名称:“mongo-express-001”
端口:
- '8081:8081'
取决于:
-mongodb1
卷数:
-“/certificates/CA.crt:/etc/certificates/CA.crt:ro”
环境:
ME_CONFIG_MONGODB_服务器:“MONGODB-001”
ME_CONFIG_MONGODB_端口:“27017”
ME\u CONFIG\u MONGODB\u ENABLE\u ADMIN:“false”
ME_CONFIG_MONGODB_AUTH_数据库:“admin”
ME_CONFIG_MONGODB_AUTH_用户名:“admin”
ME_CONFIG_MONGODB_AUTH_密码:“adminpasswd”
ME_CONFIG_MONGODB_ADMINUSERNAME:“admin”
ME\u CONFIG\u MONGODB\u ADMINPASSWORD:“ADMINPASSWORD”
ME\u配置\u站点\u SSL\u启用:“真”
ME\u CONFIG\u MONGODB\u CA\u文件:“/etc/certificates/CA.crt”
…以及我收到的错误消息:

mongodb-001      | 2020-10-09T14:16:13.299+0000 I  NETWORK  [listener] connection accepted from 172.31.0.3:44774 #2 (1 connection now open)
mongodb-001      | 2020-10-09T14:16:13.305+0000 I  NETWORK  [conn2] Error receiving request from client: SSLHandshakeFailed: The server is configured to only allow SSL connections. Ending connection from 172.31.0.3:44774 (connection id: 2)
mongodb-001      | 2020-10-09T14:16:13.305+0000 I  NETWORK  [conn2] end connection 172.31.0.3:44774 (0 connections now open)
mongo-express-001 | 
mongo-express-001 | /node_modules/mongodb/lib/server.js:265
mongo-express-001 |         process.nextTick(function() { throw err; })
mongo-express-001 |                                       ^
mongo-express-001 | Error [MongoError]: connection 0 to mongodb-001:27017 closed
mongo-express-001 |     at Function.MongoError.create (/node_modules/mongodb-core/lib/error.js:29:11)
mongo-express-001 |     at Socket.<anonymous> (/node_modules/mongodb-core/lib/connection/connection.js:200:22)
mongo-express-001 |     at Object.onceWrapper (events.js:422:26)
mongo-express-001 |     at Socket.emit (events.js:315:20)
mongo-express-001 |     at TCP.<anonymous> (net.js:674:12)
mongo-express-001 exited with code 1
  • 如果我在
    preferTLS
    模式下启动MongoDB,mongo express连接将正常工作

您没有在客户端上启用tls。@D.SM:我想也许启用了我的配置站点SSL就足够了。好的,如何在mongo express端启用TLS?我尝试用
ME\u CONFIG\u MONGODB\u URL=”替换服务器和端口环境变量mongodb://admin:adminpasswd@mongodb-001:27017/admin?tls=true“
,但它仍然给出相同的错误。文档说明了什么?我在这里阅读了文档,找不到任何关于tls的明确信息,但请随意指出,如果我遗漏了什么(我不是TLS/SSL方面的专家)。您是否建议在连接URI中添加
tls=true
不会在mongo express端启用tls?我不熟悉mongo express,尝试使其工作失败,
tls=true
应该被最近的MongoDB驱动程序识别,我不知道m-e是什么。