ArangoDB与letenrcypt证书一起使用

时间:2018-10-24 08:15:29

标签: ssl https arangodb lets-encrypt

那里有谁在运行一个使用letencrypt证书运行的arangoDB数据库?我只是无法确定这次跑步。

ArangoDB在digitalOcean Droplet上运行,我可以按照此tutorial在带有自签名证书的情况下一起运行。因此arangoDB已成功在端口8530上运行

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

因此,我在DigitalOcean中向子节点添加了一个子域。例如:db.example.com,然后生成了证书文件:

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

您最终将获得4个文件:cert.pem chain.pem fullchain.pem privkey.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时。小滴的防火墙设置应该都可以,因为我以前可以使用自签名证书访问此地址。

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

endpoint = ssl://0.0.0.0:8530

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

还有

tcp://db.example.com:8530

没有一个工作。有没有人知道我在做什么错?

1 个答案:

答案 0 :(得分:2)

在指定端点时,请使用要使用的接口的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>跟踪日志。

我刚刚测试了一个使用letencrypt证书的设置,并且在确保上述所有要点后即可正常工作。