ArangoDB 与 letsenrcypt 证书一起工作

Chr*_*Noe 5 ssl https arangodb lets-encrypt

有没有人让一个正在运行的 arangoDB 数据库使用 Letencrypt 证书?我就是不知道如何运行。

ArangoDB 在 digitalOcean droplet 上运行,我可以按照本教程使用自签名证书将其一起运行。所以 arangoDB 在端口上成功运行:8530

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

所以我在 DigitalOcean 中添加了一个子域到 droplet。例如: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
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

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

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

endpoint = ssl://0.0.0.0:8530
Run Code Online (Sandbox Code Playgroud)

endpoint = ssl://db.example.com:8530
Run Code Online (Sandbox Code Playgroud)

并且

tcp://db.example.com:8530
Run Code Online (Sandbox Code Playgroud)

它都没有工作。有人知道我做错了什么吗?

Jan*_*hde 3

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

我刚刚使用 LetsEncrypt 证书测试了一个设置,在确保上述所有点后它就可以工作了。