那里有谁在运行一个使用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
没有一个工作。有没有人知道我在做什么错?
答案 0 :(得分:2)
在指定端点时,请使用要使用的接口的IP。 endpoint = ssl://42.23.13.37:8530
(ip address
应该列出您的接口以及使用的地址)。然后,可以使用fullchain.pem创建server.prm(cat fullchain.pem privkey.pem > server.pem
)。确保生成的server.pem
是arangodb用户可访问和可读的。如果服务器仍无法正常启动,请提供服务器日志。要访问日志,请使用systemctl -fu arangodb3.service
,如果您使用某些自定义位置进行日志记录,请使用tail -f <logfile>
跟踪日志。
我刚刚测试了一个使用letencrypt证书的设置,并且在确保上述所有要点后即可正常工作。