2015-02-23 21 views
32

Hãy tha thứ cho tôi nếu điều này đã được hỏi trước đó, có một số tài nguyên liên quan đến điều này, nhưng dường như không phù hợp với trường hợp sử dụng cụ thể (https) của tôi.Cloudfront chuyển hướng www sang miền rỗng với ssl

Tôi đang cố gắng chuyển hướng https://www.example.com đến https://example.com. Tương tự, điều này sẽ hoạt động cho http://www.example.com đến https://example.com.

Tôi đã thiết lập phân phối trên đám mây với nguồn gốc của nhóm s3, chuyển hướng http đến https, thêm cname example.com và thêm chứng chỉ miền của tôi (hoạt động cho tên miền phụ www cũng như miền rỗng).

Tôi cũng đã thiết lập một bản phân phối riêng biệt, với cname cho www.example.com, thêm chứng chỉ và đặt nguồn gốc thành một nhóm s3 riêng biệt trong (lưu trữ trang web tĩnh) chuyển hướng tất cả các yêu cầu đến https://example.com.

Chuyển hướng hoạt động như mong đợi cho http://example.com đến https://example.com, tuy nhiên http: swww.example.com đến http://example.com thì không.

Trong tuyến đường 53, tôi có bí danh tên miền gốc với phân phối trên đám mây đầu tiên và www được đặt biệt hiệu cho lần thứ hai.

+0

Vui lòng xem câu trả lời của tôi ở đây, điều này khá hữu ích: http://stackoverflow.com/questions/36265027/how-to-forward-non-www-to-www-with-aws-amazon-cloud-front -behind-https-cloud-fro/41899321 # 41899321 – Marcel

+0

Thay vì đóng câu hỏi này, chúng ta có thể chuyển nó sang Lỗi máy chủ không? Tôi muốn thêm một câu trả lời. – jtheletter

Trả lời

32

Tôi tìm thấy giải pháp nhờ vào câu trả lời này: Amazon S3 Redirect and Cloudfront

Nói tóm lại:

CloudFront không tôn trọng các quy tắc thiết lập chuyển hướng trong S3 nếu nguồn gốc chỉ là ID xô. Thay vào đó, tôi phải đặt nguồn gốc cho tên máy chủ lưu trữ trang web tĩnh s3 được cung cấp.

+6

Cảm ơn bạn rất nhiều vì đã đăng câu trả lời của bạn. Tôi đã sử dụng nó để chuyển hướng HTTPS từ các tên miền rỗng sang www, ví dụ: [https://example.com] (https://example.com) -> [https://www.example.com] (https://www.example.com). Giải pháp này phản trực giác vì giao diện người dùng AWS tự động hoàn thành tên máy chủ S3 chuẩn (bucketname.s3.amazonaws.com), mà bạn cho rằng đó là cách chính xác để thực hiện, nhưng đối với trường hợp sử dụng này, điểm cuối lưu trữ trang web tĩnh (ví dụ: bucketname.s3-website-us-east-1.amazonaws.com) là những gì bạn cần. – kellen

+3

Điều quan trọng là các bản phân phối CloudFront của bạn không ** có ** bất kỳ thứ gì được đặt làm đối tượng gốc mặc định ** **, vì nó sẽ phá vỡ chuyển hướng trong thùng S3. –

+0

Liên kết của bạn trỏ đến một câu hỏi. Câu trả lời cho câu hỏi đó bạn có ý định liên kết? – jtheletter

23

Để lưu trữ trang web trên AWS để:

https://www.example.com, http://www.example.com và http://example.com tất cả chuyển hướng đến https: //example.com

bạn cần phải:

  1. Tạo hai S3 xô tên: example.comwww.example.com.

  2. Bật Lưu trữ trang web tĩnh trên hai nhóm này.

  3. Định cấu hình chuyển hướng trong nhóm www.example.com tới: https://example.com. Trong thuộc tính nhóm chọn Lưu trữ trang web tĩnh =>Chuyển hướng tất cả yêu cầu đến tên máy chủ khác. Hãy nhớ cung cấp URL với tiền tố https: //!

  4. Đối với các nhóm này, hãy tạo hai Phân phối CloudFront.Mỗi bản phân phối này trỏ đến thùng tương ứng:

  5. Đối xứ Domain Name cung cấp xô URL được cung cấp trong Website Hosting phần tĩnh. Các url nên có dạng (hoặc tương tự): example.com.s3-website-us-west-1.amazonaws.com

    • Trên cả phân phối thiết HTTP thành HTTPS chuyển hướng.

    • KHÔNG SỬ DỤNG URL ĐƯỢC ĐỀ XUẤT bởi AMAZON AUTOCOMPLETE!

    • KHÔNG THIẾT LẬP Đối tượng gốc mặc định SỞ HỮU!

  6. Định cấu hình DNS bằng cách đặt Bản ghi cho www.example.com và example.com để trỏ đến phân phối CloudFront tương ứng.

Tại sao nó hoạt động? CloudFront cung cấp chuyển hướng từ HTTP sang HTTPS trong cả hai trường hợp (có và không có www). Nhóm cho www.example.com cung cấp chuyển hướng đến example.com. Nếu bạn không có phân phối này, nhóm sẽ không thể chuyển hướng yêu cầu cho https://www.example.com. Bản thân S3 không hỗ trợ HTTPS cho việc lưu trữ trang web tĩnh.

+4

Không đặt chuyển hướng HTTP sang HTTPS trên phân phối www-> naked CF để tránh chuyển hướng không cần thiết. Bạn muốn http://www.example.com truy cập trực tiếp vào https://example.com không phải https://www.example.com trước tiên. – maletor

+0

Không đặt bản ghi A trên 53 cho www. Sử dụng CNAME. Sử dụng ALIAS cho bản ghi A và AAAA trên miền gốc. – maletor

+0

@maletor Hoặc là một công trình. ALIAS + Một bản ghi không chỉ dành cho các miền gốc, chúng được sử dụng để chỉ một mục nhập DNS vào phân phối CloudFront. – ffxsam

Các vấn đề liên quan