【问题标题】:ArangoDB working together with letsenrcypt certificatesArangoDB 与 letsenrcypt 证书一起使用
【发布时间】:2018-10-24 19:50:49
【问题描述】:

有没有人在运行 arangoDB 数据库并使用 Letsencrypt 证书?我就是不知道怎么跑。

ArangoDB 在 digitalOcean 液滴上运行,我可以在 tutorial 之后使用自签名证书使其运行。所以 arangoDB 成功运行在端口:8530

现在我的方法是用letsencrypt证书替换自签名证书。

所以我在 Droplet 中添加了 DigitalOcean 中的子域。例如:db.example.com 然后生成证书文件:

sudo -H ./letsencrypt-auto certonly --standalone -d db.example.com

你最终会得到 4 个文件:cert.pemchain.pemfullchain.pemprivkey.pem

据我了解,这些文件是:

Private Key --------> privkey.pem
Public Key ---------> cert.pem
Certificate Chain --> chain.pem

正如我提到的教程中所述,您需要将证书和密钥放在一个文件中。所以我做到了

cat chain.pem privkey.pem | sudo tee server.pem

拥有一个包含证书和私钥的文件。

然后我修改了文件/etc/arangodb3/arangod.conf,让arango知道密钥文件在哪里,并修改了ssl部分:

[ssl]
keyfile = /etc/letsencrypt/live/db.example.com/server.pem

但是重启arango后,服务器不可用了。尝试将浏览器连接到:https://db.example.com:8530。水滴的防火墙设置应该没问题,因为我之前可以使用自签名证书访问此地址。

然后我尝试修改/etc/arangodb3/arangod.conf中的端点

endpoint = ssl://0.0.0.0:8530

endpoint = ssl://db.example.com:8530

还有

tcp://db.example.com:8530

这些都不起作用。有人知道我做错了什么吗?

【问题讨论】:

标签: ssl https arangodb lets-encrypt


【解决方案1】:

请在指定端点时使用您要使用的接口的 ip,例如endpoint = ssl://42.23.13.37:8530ip address 应该列出您的接口以及正在使用的地址)。然后它可以帮助使用 fullchain.pem 创建 server.prm (cat fullchain.pem privkey.pem > server.pem)。确保生成的server.pem 可供 arangodb 用户访问和读取。如果服务器仍未正确启动,请提供服务器日志。要访问日志,请使用 systemctl -fu arangodb3.service 或使用 tail -f <logfile> 关注日志,如果您使用一些自定义位置进行日志记录。

我刚刚测试了一个带有letsencrypt证书的设置,在确保了以上所有点之后它就可以工作了。

【讨论】:

  • 非常感谢您的详细说明。按照这些步骤解决了我的问题。所以最后它正是错误的 IP 设置和不可访问的 pem 文件的组合。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-03
  • 2012-09-01
  • 2011-02-16
  • 1970-01-01
  • 2010-12-24
  • 2013-01-19
  • 1970-01-01
相关资源
最近更新 更多