如何在双机热备上使用 let's encrypt 证书?

2017-08-02 22:12:41 +08:00
 s609926202

使用了 AWS 的 ELB 双机热备架构,同时鉴于赛门铁克不久就要被干掉的情况,决定使用 letsencrypt 证书,设置定时任务,每两个月更新一次,兴冲冲的下载 certbot,并且设置了定时任务,才发现:

1:设置的方式 webroot 方法,也就是说在网站根目录下写一个.xxx 文件,每次访问时查看这个文件是否正确。但是问题来了,另一台服务器上的项目根目录下并没有这个文件啊,怎么办?

2:或者说 letsencrypt 还有其他的认证方式吗?

3:各位给支支招。。。

3688 次点击
所在节点    问与答
23 条回复
15015613
2017-08-02 22:16:13 +08:00
1 的问题,定时用 rsync 同步应该可以解决。
7654
2017-08-02 22:18:30 +08:00
域名认证
coderfox
2017-08-02 22:19:13 +08:00
有 DNS 认证,你可以查查。

不过双机的话,还是用同步工具(如上面提到的 rsync )比较好。
ericFork
2017-08-02 23:08:05 +08:00
https://github.com/GUI/lua-resty-auto-ssl
这个项目可以把证书放到 redis 里
l0wkey
2017-08-02 23:10:27 +08:00
证书不应该是在 elb 上的么
neilp
2017-08-02 23:18:01 +08:00
既然是双机热备,多同步一个证书文件也不是什么难事。 首选推荐自己同步证书。
由于是双机热备, 所以其实存在一种情况就是主机宕掉,切到备机,此时证书过期了,那么将无法更新。 推荐使用 acme.sh 进行 dns 验证。
Fishdrowned
2017-08-02 23:34:36 +08:00
不用 DNS 验证也没问题,在入口用 nginx 把.well-known 的请求反代就可以了。我都是写一个公用配置,然后各入口 include 进去。
s609926202
2017-08-02 23:38:32 +08:00
@neilp OK,O(∩_∩)O 谢谢你的建议
s609926202
2017-08-02 23:51:51 +08:00
@Fishdrowned 牛逼、、我喜欢这个方法
whileFalse
2017-08-03 00:02:15 +08:00
建议使用 ELB 进行 https 卸载。
用 DNS 验证;然后把证书加载到 ELB 上;业务服务器本身不处理 https。我就是这么干的。
获取证书可以参考 https://github.com/xdtianyu/scripts/tree/master/le-dns
ysc3839
2017-08-03 00:05:25 +08:00
我个人是建议 DNS 认证。
s609926202
2017-08-03 00:21:07 +08:00
@Fishdrowned 哥们你这个方法貌似对双机热备不可行把?反代这个我可以理解,但是你反代的 elb 不是就给了一个 CNAME 吗?然后通过 CNAME 到达任意一台机器,并不是固定的,,,所以你反代肯定是不行的啊,除非专门有一台机器拿来存存储证书文件,然后反代到可以确定的目的地。。。
s609926202
2017-08-03 00:22:57 +08:00
@ysc3839
@neilp
@coderfox
使用 DNS 后也得 rsync 进行两台机器上证书的同步吧,,,

还是说两台机器上都使用 DNS 认证,然后各自生成一份证书文件?
s609926202
2017-08-03 00:23:55 +08:00
@whileFalse ELB 进行 https 卸载这个是什么意思,没懂,,然后证书加载到 ELB,是需要上传生成好的证书到 elb 吗?
msg7086
2017-08-03 01:36:22 +08:00
@s609926202 反代到某台实体机不行吗? AWS 我不熟……
s609926202
2017-08-03 02:11:32 +08:00
@msg7086 呃,我们总共两台机器,没有多余的了,,而且为了这个貌似再购买一台不怎么划算,毕竟一台一个月的成本就得 200 多~~
cxbig
2017-08-03 05:45:32 +08:00
通常的做法都是把证书方 ELB,EC2 只管内容分发。
配置好 IAM,有很多脚本可以实现 Let ‘ s Encrypt 证书的替换

其次可以使用 AutoScaling Group 或 CodeDeploy,脚本定期更新证书放 S3,挂上的时候自动抓下来放到指定位置。
cxbig
2017-08-03 05:49:22 +08:00
2. 你可以用 AWS 自己的证书系统 ACM,非常方便。只要域名管理权在你手里,认证流程非常简单。
我们公司测试环境的证书都是 ACM 生成的。
whileFalse
2017-08-03 06:36:53 +08:00
@s609926202 就是说业务服务器和 elb 之间使用 http 通讯,elb 对外提供 https 服务,这就叫 https 卸载。
就是申请好证书上传到 IAM,然后和 elb 绑定。
楼上说的 acm 证书管理在中国区没有开放,我没用过。
a2213108
2017-08-03 08:08:40 +08:00
跑个题,Symantec 的证书可以在 namecheap 免费替换成同级的 comodo 证书。
https://www.namecheap.com/symantec-replace/

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/379952

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX