我已将MongoDB实例设置为使用身份验证。我的Mongo Connect BI设置使用相同的身份验证,但是当我通过Cube.js传递这些身份验证详细信息时,出现以下错误。
Error: ssl is required when using cleartext authentication at Packet.asError (/Users/Anton/Documents/Development/node/react-dashboard/node_modules/mysql2/lib/packets/packet.js:708:17) at ClientHandshake.execute (/Users/Anton/Documents/Development/node/react-dashboard/node_modules/mysql2/lib/commands/command.js:28:26) at Connection.handlePacket (/Users/Anton/Documents/Development/node/react-dashboard/node_modules/mysql2/lib/connection.js:408:32) at PacketParser.Connection.packetParser.p [as onPacket] (/Users/Anton/Documents/Development/node/react-dashboard/node_modules/mysql2/lib/connection.js:70:12) at PacketParser.executeStart (/Users/Anton/Documents/Development/node/react-dashboard/node_modules/mysql2/lib/packet_parser.js:75:16) at Socket.Connection.stream.on.data (/Users/Anton/Documents/Development/node/react-dashboard/node_modules/mysql2/lib/connection.js:77:25) at emitOne (events.js:116:13) at Socket.emit (events.js:211:7) at addChunk (_stream_readable.js:263:12) at readableAddChunk (_stream_readable.js:250:11)
我的mongosqld命令如下
mongosqld --mongo-uri "mongodb://XX.mlab.com:XX" -u DBUN -p DBPW --mongo-authenticationSource DBNAME --sampleNamespaces DBNAME.*
我的Cube.js .ENV配置如下
CUBEJS_DB_HOST=localhost CUBEJS_DB_NAME=DBNAME CUBEJS_DB_PORT=3307 CUBEJS_DB_TYPE=mongobi CUBEJS_DB_USER=DBUN CUBEJS_DB_PASS=DBPW
任何帮助将不胜感激。
谢谢
安东
答案 0 :(得分:0)
Cube.js Mongo BI驱动程序当前仅支持明文身份验证插件。它要求在mongosqld和Cube.js端都设置SSL,以便对传递的凭据进行加密。
自签名证书可用于提供此加密。可以使用以下命令生成它:
$ openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
将其结合在一起以创建sslPEMKeyFile
:
$ cat key.pem certificate.pem > mongo.pem
从mongosqld
开始,启用SSL:
$ ./mongosqld --auth --sslMode requireSSL --sslPEMKeyFile mongo.pem
将以下环境变量添加到您的Cube.js .env
:
CUBEJS_DB_SSL=true
CUBEJS_DB_SSL_REJECT_UNAUTHORIZED=false
非明文身份验证插件支持状态:https://github.com/cube-js/cube.js/issues/222