如何利用AWS CloudFront 自定义设置SSL

Amazon CloudFront 提供三种选项,可以加速整个网站并从 CloudFront 的边缘站点通过安全的 HTTPS 方式交付内容。除能够安全地从边缘站点交付内容外,您还可以配置 CDN 来使用针对源提取的 HTTPS 连接,这样您的数据就会实现从源到最终用户的端到端加密。

默认情况下,您可以在 URL 中使用 CloudFront 分配域名(例如 https://dxxxxx.cloudfront.net/image.jpg)通过 HTTPS 向浏览者分发内容。如果您想使用自己的域名和 SSL 证书通过 HTTPS 传送内容,则可以使用一项我们的自定义 SSL 证书支持功能。
Amazon CloudFront 的自定义 SSL 选项


SNI 自定义 SSL

服务器名称指示 (SNI) 自定义 SSL 依赖传输层安全协议的 SNI 扩展,该协议允许多个域通过同一个 IP 地址来提供 SSL 流量。Amazon CloudFront 从每个边缘站点交付内容并提供与专用 IP 自定义 SSL 功能同等的安全性(如下所述)。

使用 SNI 自定义 SSL 时,一些用户可能无法访问您的内容,因为某些旧式浏览器不支持 SNI,无法与 CloudFront 建立连接,也就不能加载相关内容的 HTTPS 版本。想要了解更多有关 SNI 的信息,包括支持的浏览器列表,请访问我们的常见问题页面。

该功能无单独定价。使用 SNI 自定义 SSL 进行证书管理不存在预付费或每月费用,您只需按照正常的 Amazon CloudFront 数据传输和 HTTPS 请求费率支付即可。

设定简单:只需按照 CloudFront 开发人员指南中的说明操作即可快速安全地开始交付内容。

专用 IP 自定义 SSL

如果需要向不支持 SNI 的浏览器交付内容,则可以使用专用 IP 自定义 SSL 功能。通过这项功能,Amazon 内容分发网络会分配专用 IP 地址,用于在每个边缘站点提供 SSL 内容。

要使用专用 IP 自定义 SSL 证书支持,请上传 SSL 证书并使用 AWS 管理控制台,将其关联到您的 CloudFront 分发内容。如果您需要将多个自定义 SSL 证书关联到 CloudFront 分发内容,请将与使用案例有关的详细信息和想要在 CloudFront Limit Increase Form 中使用的自定义 SSL 证书的号码包含在内。

专用 IP 自定义 SSL 定价简单。因为与每个 SSL 证书关联的专用 IP 地址会产生额外的成本,因此我们收取关联到 CloudFront 分配的每个自定义 SSL 证书每月 600 USD 的费用,按比例按小时计算。例如,如果您在六月将您的自定义 SSL 证书与至少一个 CloudFront 分配相关联,时长仅为 24 小时(即 1 天),那么您在六月对自定义 SSL 证书功能的使用将被收取的费用总额为:(1 天 / 30 天)* 600 USD = 20 USD。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为UTF-8的方法是什么? 您可以使用以下Java代码将文件上传到AWS S3,并设置文件编码为UTF-8: ```java import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.nio.charset.StandardCharsets; import com.amazonaws.AmazonServiceException; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.ObjectMetadata; import com.amazonaws.services.s3.model.PutObjectRequest; public class S3Uploader { private static final String BUCKET_NAME = "your-bucket-name"; private static final String ACCESS_KEY = "your-access-key"; private static final String SECRET_KEY = "your-secret-key"; public static void main(String[] args) { BasicAWSCredentials awsCreds = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY); AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(awsCreds)) .withRegion(Regions.DEFAULT_REGION) .build(); String filePath = "path/to/your/file.txt"; String keyName = "your-file-name.txt"; File file = new File(filePath); try (InputStream inputStream = new FileInputStream(file)) { ObjectMetadata objectMetadata = new ObjectMetadata(); objectMetadata.setContentEncoding(StandardCharsets.UTF_8.toString()); objectMetadata.setContentType("text/plain"); objectMetadata.setContentLength(file.length()); PutObjectRequest request = new PutObjectRequest(BUCKET_NAME, keyName, inputStream, objectMetadata); s3Client.putObject(request); } catch (AmazonServiceException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } ``` 在这个例子中,我们使用AWS SDK for Java V2将一个文件上传到AWS S3,设置文件编码为UTF-8,并设置文件的Content-Type为"text/plain"。您可以在ObjectMetadata对象中设置其他自定义元数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值