首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArangoDB与letsenrcypt证书一起工作

问ArangoDB与letsenrcypt证书一起工作
EN

Stack Overflow用户
提问于 2018-10-24 08:15:29
回答 1查看 421关注 0票数 5

有谁让运行中的arangoDB数据库使用letsencrypt证书呢?我只是想不出办法让它跑出来。

ArangoDB运行在一个digitalOcean液滴上,我可以让它一起运行,在这个tutorial后面有一个自签名的证书。因此,arangoDB成功地运行在端口8530上。

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

所以我在DigitalOcean中添加了一个子域到液滴中。例如: db.example.com an然后生成证书文件:

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

您将得到4个文件:cert.pem chain.pem fullchain.pem privkey.pem

据我所知,这些文件如下:

代码语言:javascript
复制
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部分:

代码语言:javascript
复制
[ssl]
keyfile = /etc/letsencrypt/live/db.example.com/server.pem

但是在重新启动arango之后,服务器就不可用了。尝试将浏览器连接到:https://db.example.com:8530时。防火墙设置的水滴都应该是好的,因为我可以访问这个地址与自签署证书之前。

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

代码语言:javascript
复制
endpoint = ssl://0.0.0.0:8530

至

代码语言:javascript
复制
endpoint = ssl://db.example.com:8530

而且还

代码语言:javascript
复制
tcp://db.example.com:8530

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-24 11:50:49

在指定端点时,请使用您想要使用的接口的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>跟踪日志,如果您使用某些自定义位置进行日志记录。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52964021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档