Cấu hình Cloudflare, Amazon S3 và SSL của Amazon Web Services (AWS)

Giả sử bạn đang có một website tĩnh host ở amazon S3 và sử dụng cloudflare để quản lý domain của bạn. Để thân thiện hơn với SEO thì chứng chỉ SSL là cần thiết. Bạn có thể đơn giản kích hoạt SSL ở chế độ Flexible ở cloudflare. Tuy nhiên việc mã hóa đó không thực sự mã hóa từ domain đến nơi lưu trữ site. Bài viết này giúp bạn kích hoạt chế độ SSL Full hoặc Full (Strict) ở cloudflare cho website của bạn sử dụng chứng chỉ SSL/TLS của Amazon Web Service (AWS). Bài viết không đề cập chi tiết sự khác nhau giữa các chế độ bạn có thể tham khảo thêm ở trang cloudflare.com.

Tạo certificate ở AWS Certificate Manager

Khác với chứng chỉ tạo ở Lets script hết hạn sau 3 tháng, chứng chỉ bạn tạo ở AWS có hạn 1 năm giúp bạn không cần phải quan tâm tạo lại chứng chỉ sau một thời gian ngắn.

Login tài khoản AWS và chọn dịch vụ Certificate Manager và yêu cầu một Certificate. Lúc điền domain bạn lưu ý điền cả domain gốc dạng như onlinekiem.com và cả www.onlinekiem.com. AWS sẽ cung cấp thông tin để bạn chứng thực domain là thuộc quyền sở hữu của bạn bằng cách sử dụng DNS.

Lưu ý: lUÔN CHỌN us-east-1 theo tài liệu của amazon (https://docs.aws.amazon.com/acm/latest/userguide/acm-regions.html) khi yêu cầu chứng chỉ SSL.

Sử dụng CloudFront để phát hành chứng chỉ cho bucket trên Amazon S3

https://wiki.mozilla.org/CA:IncludedCAs

Vào Amazon CloudFront –> Create Distribution

Origin Domain Name: skywirex.com.s3-website.us-east-2.amazonaws.com

https://aws.amazon.com/premiumsupport/knowledge-center/custom-ssl-certificate-cloudfront/

Trỏ domain ở cloudflare về domain được cấp trên cloudfront

Vô hiệu hóa cache cho file index.html

https://stackoverflow.com/questions/45727454/how-to-make-cloudfront-never-cache-index-html-on-s3-bucket

A solution based on CloudFront configuration:

Go to your CloudFront distribution, under the “Behavior” tab and create a new behavior. Specify the following values:

Path Pattern: index.html
Object Caching: customize
Maximum TTL: 0 (or another very small value)
Default TTL: 0 (or another very small value)

Save this configuration.

CloudFront will not cache index.html anymore.

Đọc thêm

https://hackernoon.com/hosting-static-react-websites-on-aws-s3-cloudfront-with-ssl-924e5c134455

https://medium.com/@deepak13245/hosting-a-https-static-websites-using-s3-and-lets-encrypt-6f3e53014ff2

https://medium.com/@sambecker/getting-cloudflare-cloudfront-s3-to-cooperate-over-strict-ssl-f70090ebdec

https://aws.amazon.com/premiumsupport/knowledge-center/s3-website-cloudfront-error-403/