簡體   English   中英

在arangojs中配置TLS證書授權

[英]configure TLS certificate authroity in arangojs

我創建了自己的證書頒發機構,以為我的開發環境生成TLSv1.2證書。 我的CA有一個根證書,一個由根證書簽名的中間證書,以及由中間證書簽名的許多“葉子”證書。 我使用此葉證書之一來安全地連接到arangodb服務器。 Arangod進程似乎運行良好,因為在瀏覽器中安裝了根/中間證書后,我可以成功訪問Web界面以與數據庫進行交互。

當我嘗試使用arangojs javascript驅動程序將我的nodejs API服務器連接到數據庫時,麻煩就開始了,如https://github.com/arangodb/arangojs#new-database中所述 ,我在其中找到:

如果需要支持自簽名HTTPS證書,則可能必須將證書添加到agentOptions中,例如:

agentOptions: {
  ca: [
    fs.readFileSync('.ssl/sub.class1.server.ca.pem'),
    fs.readFileSync('.ssl/ca.pem')
  ]
}

當使用自簽名證書和:

agentOptions: {
  ca: [
    fs.readFileSync('db.crt.pem')
  ]
}

但是使用我自己的CA簽名證書時失敗,並且:

agentOptions: {
  ca: [
    fs.readFileSync('interm.crt.pem')
  ]
}

我還嘗試了其他一些ca設置,例如:1.傳遞[root,interm]證書緩沖區2.傳遞[interme,root]證書緩沖區(交換順序)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同步,但仍然無法正常工作。

最后,我認為這只是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用戶

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM