Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 使用AWS S3和ACM在子域上启用SSL_Amazon Web Services_Ssl_Amazon S3 - Fatal编程技术网

Amazon web services 使用AWS S3和ACM在子域上启用SSL

Amazon web services 使用AWS S3和ACM在子域上启用SSL,amazon-web-services,ssl,amazon-s3,Amazon Web Services,Ssl,Amazon S3,我有一个位于S3上的网站example.com。我已成功为此站点设置了HTTP->HTTPS转发 我还有一个子域,blog.example.me,它也存在于S3上,我想使用S3启用SSL。现在,它只支持HTTP。我使用Route 53进行路由,使用Cloudfront作为CDN 我已经查找了关于这个问题的文档,但还没有找到有效的方法。我是否必须创建新证书,或者我是否可以使用example.com使用的相同证书?如果我可以使用相同的证书,我应该从哪个AWS开始?对于证书,它取决于它是否是覆盖整个域

我有一个位于S3上的网站
example.com
。我已成功为此站点设置了HTTP->HTTPS转发

我还有一个子域,
blog.example.me
,它也存在于S3上,我想使用S3启用SSL。现在,它只支持HTTP。我使用Route 53进行路由,使用Cloudfront作为CDN


我已经查找了关于这个问题的文档,但还没有找到有效的方法。我是否必须创建新证书,或者我是否可以使用
example.com
使用的相同证书?如果我可以使用相同的证书,我应该从哪个AWS开始?

对于证书,它取决于它是否是覆盖整个域的通配符证书。通配符证书的示例是
*。example.com
您可以将相同的证书用于
子域

具有S3和Cloudfront的典型托管安全站点将遵循以下步骤

创建一个S3存储桶

Bucket name-您的域名

选择您的bucket,转到属性->静态网站托管,然后启用 网站托管

授予公共读取访问权限以允许cloudfront从您的存储桶中读取

获取SSL证书/使用现有证书(如果适用)

AWS提供免费SSL证书,可与支持SNI的浏览器一起使用。您可以导入自己的SSL证书

CloudFront配置

创建一个新的Web分发。在“原点设置”下,使用端点 您从S3存储桶的静态宿主设置中复制。许多其他 指南对此进行了说明,但没有解释原因 — 这是因为如果你 使用S3存储桶配置重定向规则,并指定 内部AWS S3资源,重定向将不再工作。 因此,必须指定网站端点域以确保 重定向功能可以正常工作

在默认缓存行为设置下,值得选择重定向 HTTP到HTTPS并缩小允许的HTTP方法的范围 — 暂时 静态网站,得到和头部会做

在cloudfront分发设置下,配置:

  • 在备用域名(yourdomain.com、, (也可以选择www.yourdomain.com)
  • 通过选择自定义SSL证书,然后选择 在证书管理器中生成或导入的证书
  • 最后,指定默认的根对象。这应该与您的S3相匹配 bucket的索引文档,通常是Index.html。这就是所有人都在做的事情 当客户端请求您的网站URL时,请求将重定向到 无路可走
路线53配置:

  • 前往托管区域

  • 为要使用的域或子域选择托管区域

  • 为您的站点创建记录:选择Alias,在下拉列表中,您将看到cloudfront发行版,选择它作为别名目标并保存它


有关更详细的信息,请检查:

对于证书,这取决于它是否是覆盖整个域的
通配符证书。通配符证书的示例是
*。example.com
您可以将同一证书用于您的
子域
@iamcaleberic我有两个证书-一个用于
example.com
和另一个用于通配符证书-
*.example.com
。你认为它们有冲突吗?一个通配符证书
*。example.com
可以覆盖主域和子域。虽然在创建cloudfront发行版时选择要使用的证书不会有冲突。但是对于您的博客,请确保使用通配符
*.example.com
,因为
example.com之一不起作用
cloudfront不允许我添加我的第三方证书-选项变灰