答案1
这个问题的答案分为两部分。
首先,使用“Let's Encrypt”实际上与问题无关:它是一个证书颁发机构 (CA)。它像所有其他机构一样颁发 SSL (TLS) 证书,只是它似乎只会颁发域验证 (DV) 证书,而且这些证书显然是免费颁发的。但最后两点(虽然很有趣)也与问题无关。
因此,“我可以在 S3 上托管的静态网站上使用 Let's Encrypt 的 SSL 证书吗?” 并不是正确的问题。唯一的问题是“我可以在 S3 上托管的静态网站上使用我提供的证书对我的域使用 HTTPS 吗?”
第一个答案:不。
网站端点不支持https。
http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html
第二个答案:是的。
如何?
S3 前面的 CloudFront。您可以将指向存储桶网站主机名的 CloudFront 分发配置为“自定义”来源,然后将新的 SSL 证书加载到 CloudFront 中,并将 DNS 更改为指向 CloudFront,而不是直接指向存储桶。
这是唯一使用全原生 AWS 管理组件在 S3 中托管的静态网站上为您自己的域“安装”您自己的 SSL 证书的解决方案。S3 服务不直接支持此功能,不支持 Let's Encrypt 证书或任何其他 CA 的证书。
答案2
您可以将网站的文件存储在 S3 上,但要发布它,您需要使用 CloudFront。在那里,您将能够选择您必须在 AWS IAM 证书存储中上传的自定义证书。如何上传自定义服务器证书:http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs_manage.html
答案3
您可以使用 OpenSSL 创建自己的 SSL 证书,并通过 apache 配置应用它(假设您使用的是 apache)。但是请注意,自制证书和 https 会使所有浏览器有效地向用户发出警告,即在使用自制证书时,您的网站可能“不安全”或“受到威胁”。您可以从认证机构获得 SSL 证书,尽管这需要周转时间,而且通常需要花费一些钱。
答案4
第一个问题——>不。
第二个问题 --> 可以选择在 S3 前面添加其他服务(如 CloudFront),但您仍然需要获取证书(CloudFront 不会为您执行此操作)。有一些工具和服务可以帮助您获取 Let's Encrypt (LE) 证书,但这不是一键式解决方案。这仍然有点麻烦。但您可以将其他服务放在 S3 前面,它们提供一键式 LE 集成您根本不需要处理证书(他们会为您处理)。