借助AWS S3与ACM为子域名启用SSL证书的技术问询
为blog.example.me启用SSL的证书方案及操作指南
嘿,先给你明确核心结论:你能不能复用现有example.com的证书,完全取决于原证书的备选域名(SAN)是否包含example.me或*.example.me:
- 如果原证书已经覆盖这两个域名中的任意一个,那直接复用就行;
- 如果没有,要么扩展原证书添加目标域名,要么创建新证书——这两种操作都在AWS Certificate Manager(ACM)里完成。
一步步来操作
1. 先检查现有证书的覆盖范围
登录AWS控制台,找到**Certificate Manager(ACM)**服务,定位到你的example.com证书,查看它的「备选域名」列表:
- 要是列表里有
*.example.me或者blog.example.me,那这个证书就能直接用于你的子域名,不用折腾新证书; - 要是没有,继续往下看。
2. 扩展原证书或创建新证书
选项A:扩展现有证书(更省心,适合原证书还在有效期的情况)
在ACM里打开你的example.com证书,点击「编辑备选域名」,添加blog.example.me(或者直接加*.example.me,这样未来example.me下的其他子域也能复用这个证书)。然后选择DNS验证——因为你用的是Route 53,ACM会自动帮你添加验证DNS记录,等着证书更新完成就行。
选项B:创建新证书
注意!给CloudFront用的证书必须在us-east-1(弗吉尼亚北部)区域创建,不管你的S3和Route 53在哪个区域:
- 进入ACM的us-east-1区域,点击「请求证书」;
- 输入域名
blog.example.me或者*.example.me; - 选择DNS验证,Route 53会自动生成并添加验证记录,坐等证书颁发。
3. 配置CloudFront启用HTTPS
因为S3静态网站托管本身不支持自定义域名的HTTPS,必须通过CloudFront来实现:
- 新建或修改CloudFront分发:
- 源设置为你的S3静态网站托管的Endpoint;
- 在「自定义SSL证书」下拉框里选你刚才确认可用的证书(复用的扩展证书或新证书);
- 缓存行为里设置「查看器协议策略」为「重定向HTTP到HTTPS」;
- 建议配置Origin Access Identity(OAI),确保只有CloudFront能访问你的S3桶,提升安全性;
- 去Route 53,把
blog.example.me的A/AAAA记录改成别名,指向这个CloudFront分发的域名。
几个务必注意的点
- CloudFront证书区域限制:再强调一遍,只有us-east-1区域的ACM证书能被CloudFront识别,别选错区域;
- 域名验证选DNS:用Route 53的话,DNS验证是最快最稳的,不用手动搞HTTP验证那一套;
- S3权限锁死:别把S3桶设成公开访问,用OAI让CloudFront单独访问,更安全。
内容的提问来源于stack exchange,提问作者johnmarinelli
相关产品推荐
相关产品推荐

