每个项目都需要配挺多域名的,比如 hackertalk.net 需要配置:
- api.hackertalk.net:用于 API 请求
- content.hackertalk.net:用于 user content 存储
- image.hackertalk.net:用于 lambda 图片按需裁减、格式转换服务
- math.hackertalk.net:用于编辑器 LaTex 公示渲染(lambda 实现)
- beta.hackertalk.net:用于 beta 版本测试
市面上的通用证书都不好用:
- 昂贵:理解 https 原理后都知道这是智商税
- 麻烦:每年都要更新证书(阿里云只能申请 DV 单域名免费证书,子域名都要管理)
- 安全:直接下载 cert/key 并导入有泄漏的风险
在 AWS 上就简单多了,Certificate Manager 是免费的,申请验证域名所有权后通过 arn 使用,不能下载(没有开发人员泄漏风险),可以将证书安装在 NLB 负载均衡上,每年都会自动刷新证书(不用人工更换),可以用于:
- NLB 负载均衡(hackertalk 配合 k8s nginx ingress 自动解密流量)
- CloudFront:CDN 服务上
- API Gateway:简化 API 部署