Javascript 在arangojs中配置TLS证书授权
我创建了自己的证书颁发机构,以便为我的开发环境生成TLSv1.2证书。 我的CA有一个根证书、一个由根签署的中间证书和一系列由中间证书签署的“叶”证书。我使用其中一个叶证书安全地连接到arangodb服务器。 arangod进程似乎运行良好,因为在浏览器中安装根证书/中间证书后,我可以成功访问web界面与数据库交互 当我尝试使用arangojs javascript驱动程序将我的nodejs API服务器连接到数据库时,就会出现问题,如我在何处找到的: 如果您需要支持自签名HTTPS证书,您可能需要将您的证书添加到代理中,例如:Javascript 在arangojs中配置TLS证书授权,javascript,ssl,certificate,arangodb,arangojs,Javascript,Ssl,Certificate,Arangodb,Arangojs,我创建了自己的证书颁发机构,以便为我的开发环境生成TLSv1.2证书。 我的CA有一个根证书、一个由根签署的中间证书和一系列由中间证书签署的“叶”证书。我使用其中一个叶证书安全地连接到arangodb服务器。 arangod进程似乎运行良好,因为在浏览器中安装根证书/中间证书后,我可以成功访问web界面与数据库交互 当我尝试使用arangojs javascript驱动程序将我的nodejs API服务器连接到数据库时,就会出现问题,如我在何处找到的: 如果您需要支持自签名HTTPS证书,您可能
agentOptions: {
ca: [
fs.readFileSync('.ssl/sub.class1.server.ca.pem'),
fs.readFileSync('.ssl/ca.pem')
]
}
使用自签名证书时,agentOption配置有效,并且:
agentOptions: {
ca: [
fs.readFileSync('db.crt.pem')
]
}
但在使用我自己的CA签名证书时失败,并且:
agentOptions: {
ca: [
fs.readFileSync('interm.crt.pem')
]
}
我还尝试了其他几种ca设置,如:
1.正在传递[root,interm]证书缓冲区
2.传递[interm,root]证书缓冲区(交换订单)
3.传递[root+interm]证书缓冲区(单个连接文件)
4.传递[interm+root]证书缓冲区(如上所述,交换订单)
但这一切似乎都不起作用。我总是从arangojs收到一条很长的错误消息,在开始的时候,我看到无法验证叶子签名
通过查找它,我找到了对节点ssl根cas npm模块的引用,但由于我使用自己的CA,我不明白为什么要使用它(我也尝试过,但也没有成功)
我的问题似乎与类似,但解决方案似乎与上面的文档是1:1同步的,仍然不起作用
最后,我认为这只是arangojs中agantOptions的一个微妙配置问题。有人能给我指一下正确的配置吗?我终于通过以下方式建立了一个安全的TLS连接:
agentOptions: {
ca: [
fs.readFileSync('interm_root.crt.pem')
]
}
其中interm_root.crt.pem是中间证书和根证书的串联,其获得方式如下:
cat interm.crt.pem root.crt.pem>interm_root.crt.pem
由于某种原因,我在第一轮测试中没有正确地进行连接
希望这对其他arangojs用户有所帮助我终于通过以下方式建立了安全的TLS连接:
agentOptions: {
ca: [
fs.readFileSync('interm_root.crt.pem')
]
}
其中interm_root.crt.pem是中间证书和根证书的串联,其获得方式如下:
cat interm.crt.pem root.crt.pem>interm_root.crt.pem
由于某种原因,我在第一轮测试中没有正确地进行连接
希望这可以帮助其他arangojs用户它也可以通过读取单独文件中的根证书和中间证书来工作,并且与它们在ca阵列中传递的顺序无关。它还可以通过读取单独文件中的根证书和中间证书来工作,与它们在ca阵列中传递的顺序无关