Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 解析服务器通过SSL连接到远程数据库_Node.js_Mongodb_Ssl_Parse Platform_Parse Server - Fatal编程技术网

Node.js 解析服务器通过SSL连接到远程数据库

Node.js 解析服务器通过SSL连接到远程数据库,node.js,mongodb,ssl,parse-platform,parse-server,Node.js,Mongodb,Ssl,Parse Platform,Parse Server,在启用SSL之前,我一直在本地使用Parse Server,没有任何问题。现在我有许多未经授权的和其他错误,阻止我连接到远程数据库 该数据库由NodeChef托管,它们提供了一个sslca文件,我已尝试按照建议将其添加到解析服务器配置中。但是,我仍然无法连接,并且在终端中出现以下错误 警告:未启用以确保用户电子邮件地址的唯一性:错误: 无法获取颁发者证书 错误(本机) 在TLSSocket。(_tls_wrap.js:1000:38) 在emitNone(events.js:67:13) 在TL

在启用SSL之前,我一直在本地使用Parse Server,没有任何问题。现在我有许多未经授权的和其他错误,阻止我连接到远程数据库

该数据库由NodeChef托管,它们提供了一个sslca文件,我已尝试按照建议将其添加到解析服务器配置中。但是,我仍然无法连接,并且在终端中出现以下错误

警告:未启用以确保用户电子邮件地址的唯一性:错误: 无法获取颁发者证书 错误(本机) 在TLSSocket。(_tls_wrap.js:1000:38) 在emitNone(events.js:67:13) 在TLSSocket.emit(events.js:166:7) 完成时(包装:567:8) 错误:未捕获的内部服务器错误。{[MongoError:无法获取颁发者证书] 名称:“MongoError”, 消息:“无法获取颁发者证书”}错误:无法获取颁发者证书 错误(本机) 在TLSSocket。(_tls_wrap.js:1000:38) 在emitNone(events.js:67:13) 在TLSSocket.emit(events.js:166:7) 完成时(包装:567:8)

我的解析服务器配置如下所示:

var api = new ParseServer({
    databaseURI: databaseUri || '',
    databaseOptions: {
        mongos: {
            ssl: true,
            sslValidate: true,
            allowConnectionsWithoutCertificates: true,
            sslCA: [fs.readFileSync('SSLCA.pem')] // cert from nodechef dashboard
        }
    },
    cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
    appId: process.env.APP_ID
})
我已经尝试在客户端和服务器上将服务器URL更改为HTTPS,并且两者之间的每一种组合都没有效果


非常感谢。

问题是我仍然有一个遗留的javascript密钥集。如果在Parse Server initialization(解析服务器初始化)选项中设置了这个可选参数,那么它将完全拒绝使用新的JS客户端进行连接(非常正确),您只需要一个应用程序ID和初始化功能

我可以使用连接字符串中的
?ssl=true
确认我不需要证书来连接到位于NodeChef的远程数据库

虽然很尴尬,我还是把这个放在这里,也许可以帮助别人