首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在arangojs中配置TLS证书认证

在arangojs中配置TLS证书认证
EN

Stack Overflow用户
提问于 2017-07-08 00:27:26
回答 1查看 167关注 0票数 1

我创建了自己的证书颁发机构来为我的开发环境生成TLSv1.2证书。我的CA有一个根证书、一个由根签名的中间证书和一些由中间证书签名的“叶”证书。我使用其中一个叶证书安全地连接到arangodb服务器。由于在浏览器中安装了根证书/中间证书后,我可以成功地访问web界面与数据库进行交互,因此arangod进程似乎运行得很好。

当我尝试使用arangojs javascript驱动程序将我的nodejs API服务器连接到数据库时,麻烦开始了,如我在https://github.com/arangodb/arangojs#new-database中所述,我在那里找到了:

如果您需要支持自签名HTTPS证书,您可能需要将您的证书添加到agentOptions,例如:

代码语言:javascript
复制
agentOptions: {
  ca: [
    fs.readFileSync('.ssl/sub.class1.server.ca.pem'),
    fs.readFileSync('.ssl/ca.pem')
  ]
}

agentOption配置在使用自签名证书时有效,并且:

代码语言:javascript
复制
agentOptions: {
  ca: [
    fs.readFileSync('db.crt.pem')
  ]
}

但在使用我自己的CA签名证书时失败,并且:

代码语言:javascript
复制
agentOptions: {
  ca: [
    fs.readFileSync('interm.crt.pem')
  ]
}

我还尝试了其他几个ca设置,如: 1.传递根目录,中间证书缓冲区2.传递中间根证书缓冲区(交换顺序) 3.传递root+interm证书缓冲区(单个连接文件) 4.传递interm+root证书缓冲区(如上所述,交换顺序),但这些似乎都不起作用。我总是收到来自arangojs的非常长的错误消息,在开始的时候,我看到了UNABLE_TO_VERIFY_LEAF_SIGNATURE

通过查找,我找到了对node-ssl-root-cas npm模块的引用,但由于我使用的是我自己的CA,所以我不明白我为什么要使用它(我也尝试过,但也没有成功)。

我的问题似乎与https://github.com/arangodb/arangojs/issues/39类似,但解决方案似乎与上面的文档1:1同步,但它仍然不起作用。

最后,我认为这只是agantOptions在arangojs中的一个微妙的配置问题。有人能告诉我正确的配置吗?

EN

回答 1

Stack Overflow用户

发布于 2017-07-08 01:06:44

我最终设法通过使用以下命令建立了一个安全的TLS连接:

代码语言:javascript
复制
agentOptions: {
  ca: [
    fs.readFileSync('interm_root.crt.pem')
  ]
}

其中,interm_root.crt.pem是中间证书和根证书的串联,可通过以下方式获得:

cat interm.crt.pem root.crt.pem > interm_root.crt.pem

由于某些原因,我在第一轮测试的匆忙中没有得到正确的连接。

我希望这能帮助其他arangojs用户

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44975673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档