Amazon S3 - HTTPS / SSL - Có thể không? [đóng cửa]


177

Tôi đã thấy một vài câu hỏi khác liên quan đến vấn đề này mà không có bất kỳ câu trả lời hoặc thông tin thực sự nào (hoặc vì vậy nó xuất hiện).

Tôi có một hình ảnh ở đây: http :
// f thất.retailcatalog.us / products / 2061 / 6262u9665.jpg

Đang chuyển hướng đến: http :
// f thất.retailcatalog.us.s3.amazonaws.com / products / 2061 / 6262u9665.jpg

Tôi cần nó để được (https): https: // f thất.retailcatalog.us / products / 2061
/ 6262u9665.jpg

Vì vậy, tôi đã cài đặt một ký tự đại diện ssl trên Retailcatalog.us (chúng tôi có các tên miền phụ khác), nhưng nó không hoạt động. Tôi đã đi kiểm tra
https: // f thất.retailcatalog.us.s3.amazonaws.com / products / 2061 / 6262u9665.jpg

Và nó không hoạt động, điều đó có nghĩa là trên chính trang web Amazon S3, https không hoạt động.

Làm thế nào để tôi thực hiện công việc này?


Câu hỏi của bạn không giải thích chính xác những gì bạn muốn làm. Bạn có muốn làm cho các yêu cầu http chuyển hướng đến https không? Nếu vậy, bạn nên đặt lại tiêu đề của câu hỏi để nêu rõ hơn thực tế đó. Điều đó sẽ giúp nhiều người tìm thấy câu hỏi này và trả lời nó.
A. Levy

Không, tôi muốn truy cập hình ảnh một cách an toàn. Điều này có thể không?
Kerry Jones

URL cuối cùng đó hoạt động với tôi, mặc dù nó có lỗi chứng chỉ có thể là vấn đề với bạn
Michael Haren

Vâng, đó là một vấn đề. Đối với tôi, tôi không thể nhìn thấy nó ở nơi đầu tiên và tôi phải xác minh chứng chỉ bằng tay để xem nó.
Kerry Jones

1
chỉ một vài năm cuối trò chơi, nhưng ssl cnames hoạt động với cloudfront. ví dụ cdn.example.com trỏ đến Randomopes.cloudfront.net trỏ đến nhóm s3 của bạn. https: // cdn.example.com sẽ phục vụ nội dung không có lỗi, nhưng bạn sẽ nhận được cảnh báo chứng nhận nếu cố gắng duyệt url trực tiếp.
Neil McGuigan

Câu trả lời:


182

Đây là phản hồi tôi nhận được từ Dịch vụ cao cấp của họ

Xin chào,

Đây thực sự là một vấn đề với cách SSL xác thực các tên có chứa dấu chấm, '.',> Ký tự. Chúng tôi đã ghi lại hành vi này ở đây:

http://docs.amazonwebservice.com/AmazonS3/latest/dev/BucketRestrictions.html

Cách khắc phục đơn giản cho việc này là sử dụng tên nhóm không chứa ký tự đó. Thay vào đó, bạn có thể sử dụng một cái xô có tên 'đồ nội thất-bán lẻ-chúng tôi'. Điều này sẽ cho phép bạn sử dụng HTTPS với

https: // f thất-retailcatalog-us.s3.amazonaws.com/

Tất nhiên, bạn có thể đặt bản ghi DNS CNAME để làm cho nó thân thiện hơn. Ví dụ,

hình ảnh-f thất.retailcatalog.us TRONG CNAME đồ nội thất -retailcatalog-us.s3.amazonaws.com.

Mong rằng sẽ giúp. Hãy cho chúng tôi biết nếu bạn có bất kỳ câu hỏi nào khác.

Dịch vụ web Amazon

Thật không may, CNAME "thân thiện" của bạn sẽ khiến tên máy chủ không khớp khi xác thực chứng chỉ, do đó bạn không thể thực sự sử dụng nó để kết nối an toàn. Một tính năng thiếu lớn của S3 là chấp nhận chứng chỉ tùy chỉnh cho tên miền của bạn.


CẬP NHẬT 10/2/2012

Từ @mpoisot:

Liên kết Amazon cung cấp không còn nói gì về https. Tôi đã tìm kiếm trong các tài liệu S3 và cuối cùng đã tìm thấy một ghi chú nhỏ về nó trên trang Virtual Hosting: http://docs.amazonwebservice.com/AmazonS3/latest/dev/Virtualhosting.html


CẬP NHẬT 17/03/2013

Từ @Joseph Sắc:

Chỉ có nó! Hãy xem thử và đăng ký lời mời: http://aws.amazon.com/cloudfront/custom-ssl-domains


22
+1 để theo dõi câu hỏi đã thắng của bạn - thông tin rất hữu ích dễ bị bỏ qua trong tài liệu S3!
Steffen Opel

1
Liên kết Amazon cung cấp không còn nói gì về https. Tôi đã tìm kiếm trong các tài liệu S3 và cuối cùng đã tìm thấy một ghi chú nhỏ về nó trên trang Virtual Hosting: docs.amazonwebservice.com/AmazonS3/latest/dev/,
mpoisot

4
Lưu ý rằng đó là $ 600 M MONI THÁNG. : -o
loneboat

8
Giờ đây bạn có thể sử dụng chứng chỉ SSL của riêng mình cho Cloudfront mà không phải trả thêm phí . Vì vậy, phí 600 $ / m đã biến mất.
lúng túng

4
@schickling Cũng đáng lưu ý rằng CloudFront đã thực hiện thay đổi này bằng cách cho phép bạn chọn giữa SNI hoặc SSL IP chuyên dụng . SSL IP chuyên dụng tiếp tục có giá 600 đô la, nhưng SNI SSL là miễn phí. Chỉ cần đảm bảo các trình duyệt bạn đang nhắm mục tiêu hỗ trợ SNI.
Ryan Pendleton

111

Tôi biết một năm sau thực tế, nhưng sử dụng nó sẽ giải quyết nó: https : //s3.amazonaws.com/f thất.retailcatalog.us / products / 2061 / 6262u9665.jpg

Tôi đã thấy điều này trên một trang web khác ( http://joonhachu.blogspot.com/2010/09/helpful-tip-for-amazon-s3-urls-for-ssl.html ).


18
dường như không thực sự giải quyết nó. Nó vẫn sử dụng tên miền amazon (s3.amazonaws.com) để nó hút!
themihai

14
Điều này không hút. Có, tên miền là khác nhau, nhưng nó cho phép bạn phân phát nội dung qua SSL trên một nhóm hiện có trên S3. Nếu không có lược đồ này, bạn phải tạo một nhóm chỉ dành cho các tệp được cung cấp SSL của bạn (vì chứng chỉ SSL ký tự đại diện S3 sẽ không khớp với các tệp.yourdomain.com.s3.amazonaws.com): safe-yourdomain.s3.amazonaws.com . Bây giờ bạn có hai thùng để quản lý thay vì một. Không phải là một vấn đề lớn, nhưng trong các ứng dụng web, bất kỳ sự phức tạp nào hơn những gì thực sự cần thiết.
andrew

7
Xin chào, tôi thực sự là người đã viết liên kết tham chiếu mà bạn đặt ở đó "Joonha". Viên ngọc nhỏ không thể bỏ lỡ là sử dụng kỹ thuật đó + "//" một mình khi giao thức của bạn bắt đầu. Đối với doanh nghiệp phát triển thương mại điện tử của tôi, chúng tôi liên kết với các URL bằng "//" thay vì "https: // hoặc" http: // "vì chúng tôi không bao giờ phải quan tâm tại thời điểm đó.
Jason Sebring

4
Có vẻ như điều này không còn hoạt động nữa, tôi đã gặp lỗi PermanentRedirect.
Paulo Casaretto

5
Xem câu trả lời mới của tôi về lý do tại sao điều này làm việc cho một số người chứ không phải cho những người khác. Vấn đề là xô của bạn ở khu vực nào.
Nate

47

Câu trả lời của payton109 là chính xác nếu bạn ở khu vực US-EAST-1 mặc định. Nếu nhóm của bạn ở một khu vực khác, hãy sử dụng URL hơi khác:

https://s3-<region>.amazonaws.com/your.domain.com/some/asset

Trong trường hợp <region>là tên vị trí xô. Ví dụ: nếu xô của bạn ở us-west-2khu vực (Oregon), bạn có thể làm điều này:

https://s3-us-west-2.amazonaws.com/your.domain.com/some/asset

1
Khi sử dụng bản ghi DNS CNAME, chỉ có độ phân giải tên miền, do đó bạn không thể chuyển hướng đến một url bằng một đường dẫn. Xem thêm: stackoverflow.com/questions/32714351/ khăn
Sebastien Lorber

Điều này làm việc cho tôi và là câu trả lời đầy đủ nhất.
bao vây

2
Điều này là tốt, nhưng nó bỏ qua các quy tắc lưu trữ trang web tĩnh, chẳng hạn như quy tắc chuyển hướng đến index.html
Kim T

Đây là giải pháp hoàn hảo cho các nhà phát triển web mà không cần nhóm devops hay sys-admin. Chắc chắn, tài sản của bạn sẽ không có một miền thanh lịch, nhưng có bao nhiêu khách hàng kiểm tra html hoặc các yêu cầu cơ bản và tsk tsk tsk tại url tên miền? Không nhiều! Lấy tài sản tĩnh của bạn ra khỏi ứng dụng của bạn và vào S3 là bước đầu tiên tuyệt vời ở nơi đầu tiên.
stwr667

8

Như đã nói trước đây, điều đó không thể trực tiếp, nhưng bạn có thể thiết lập Apache hoặc nginx + SSL trên phiên bản EC2, CNAME tên miền mong muốn của bạn với đó và ủy quyền ngược lại cho các URL S3 (tên miền không tùy chỉnh).


Một cách để tìm đường dẫn SSL đủ điều kiện đến tài nguyên S3 là truy sâu vào nó bằng bảng điều khiển AWS. Đường dẫn đầy đủ được hiển thị ở dưới cùng của tab Tổng quan.
eric gilbertson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.