Node.js 解析服务器通过SSL连接到远程数据库
在启用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) 我的解析服务器配置如下所示: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
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的远程数据库
虽然很尴尬,我还是把这个放在这里,也许可以帮助别人