Amazon S3 - HTTPS / SSL - Apakah mungkin? [Tutup]

177

Saya melihat beberapa pertanyaan lain tentang ini tanpa jawaban atau informasi nyata (atau begitulah kelihatannya).

Saya punya gambar di sini:
http://furniture.retailcatalog.us/products/2061/6262u9665.jpg

Yang mengarahkan ke:
http://furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg

Saya membutuhkannya (https):
https://furniture.retailcatalog.us/products/2061/6262u9665.jpg

Jadi saya memasang wildcard ssl di retailcatalog.us (kami memiliki subdomain lain), tetapi tidak berfungsi. Saya pergi untuk memeriksa
https://furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg

Dan itu tidak berfungsi, yang berarti di situs web Amazon S3 sendiri httpsnya tidak berfungsi.

Bagaimana saya membuat ini bekerja?

Kerry Jones
sumber
Pertanyaan Anda tidak menjelaskan dengan tepat apa yang ingin Anda lakukan. Apakah Anda ingin membuat permintaan http redirect ke https? Jika demikian, Anda harus menulis ulang judul pertanyaan untuk lebih menyatakan fakta itu. Itu akan membantu lebih banyak orang untuk menemukan pertanyaan ini dan menjawabnya.
A. Levy
Tidak, saya ingin mengakses gambar dengan aman. Apakah ini mungkin?
Kerry Jones
URL terakhir itu berfungsi untuk saya, meskipun ia disertai dengan kesalahan sertifikat yang kemungkinan menjadi masalah bagi Anda
Michael Haren
Ya, itu masalah. Bagi saya menghentikan saya dari melihatnya di tempat pertama dan saya harus memverifikasi sertifikat secara manual untuk melihatnya.
Kerry Jones
1
hanya beberapa tahun terlambat untuk permainan, tetapi csames ssl bekerja dengan cloudfront. contoh cdn.example.com menunjuk ke randomstring.cloudfront.net yang menunjuk ke ember s3 Anda. https: // cdn.example.com akan menayangkan konten tanpa kesalahan, tetapi Anda mendapatkan peringatan cert jika mencoba menelusuri url secara langsung.
Neil McGuigan

Jawaban:

182

Ini adalah respons yang saya dapatkan dari Layanan Premium mereka

Halo,

Ini sebenarnya masalah dengan cara SSL memvalidasi nama yang mengandung tanda titik, '.',> Karakter. Kami telah mendokumentasikan perilaku ini di sini:

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

Satu-satunya perbaikan langsung untuk ini adalah menggunakan nama bucket yang tidak mengandung karakter itu. Anda mungkin menggunakan ember bernama 'furniture-retailcatalog-us'. Ini akan memungkinkan Anda menggunakan HTTPS dengan

https://furniture-retailcatalog-us.s3.amazonaws.com/

Anda tentu saja dapat membuat data DNS CNAME untuk membuatnya lebih ramah. Sebagai contoh,

images-furniture.retailcatalog.us DI CNAME furniture-retailcatalog-us.s3.amazonaws.com.

Semoga itu bisa membantu. Beritahu kami jika Anda memiliki pertanyaan lain.

Layanan Web Amazon

Sayangnya, CNAME "ramah" Anda akan menyebabkan ketidakcocokan nama host saat memvalidasi sertifikat, karena itu Anda tidak dapat menggunakannya untuk koneksi yang aman. Fitur besar S3 yang hilang adalah menerima sertifikat khusus untuk domain Anda.


PEMBARUAN 10/2/2012

Dari @mpoisot:

Tautan yang disediakan Amazon tidak lagi mengatakan apa pun tentang https. Saya mencari-cari di dokumen S3 dan akhirnya menemukan catatan kecil tentang hal itu di halaman Virtual Hosting: http://docs.amazonwebservices.com/AmazonS3/latest/dev/VirtualHosting.html


PEMBARUAN 6/17/2013

Dari @Joseph Lust:

Baru saja mendapatkannya! Lihat dan daftar undangan: http://aws.amazon.com/cloudfront/custom-ssl-domains

Kerry Jones
sumber
22
+1 untuk menindaklanjuti pertanyaan Anda yang menang - informasi yang sangat membantu dengan mudah diabaikan dalam dokumentasi S3!
Steffen Opel
1
Tautan yang disediakan Amazon tidak lagi mengatakan apa pun tentang https. Saya mencari-cari di dokumen S3 dan akhirnya menemukan catatan kecil tentang hal itu di halaman Virtual Hosting: docs.amazonwebservices.com/AmazonS3/latest/dev/…
mpoisot
4
Perhatikan bahwa $ 600 PER BULAN. : -o
loneboat
8
Sekarang dimungkinkan untuk menggunakan sertifikat SSL Anda sendiri untuk Cloudfront tanpa biaya tambahan . Jadi biaya $ 600 / m hilang.
Bercanda
4
@schickling Perlu juga dicatat bahwa CloudFront membuat perubahan ini dengan memungkinkan Anda untuk memilih antara SNI atau IP SSL Khusus. IP SSL khusus terus dikenai biaya $ 600, tetapi SNI SSL gratis. Pastikan saja browser yang Anda targetkan mendukung SNI.
Ryan Pendleton
111

Saya tahu ini setahun setelah fakta, tetapi menggunakan ini menyelesaikannya: https://s3.amazonaws.com/furniture.retailcatalog.us/products/2061/6262u9665.jpg

Saya melihat ini di situs lain ( http://joonhachu.blogspot.com/2010/09/helpful-tip-for-amazon-s3-urls-for-ssl.html ).

payton109
sumber
18
sepertinya tidak benar-benar menyelesaikannya. Masih menggunakan nama domain amazon (s3.amazonaws.com) sehingga sangat menyebalkan!
themihai
14
Ini tidak payah. Ya, domain berbeda, tetapi memungkinkan Anda untuk menayangkan konten melalui SSL pada bucket yang ada di S3. Tanpa skema ini, Anda harus membuat ember hanya untuk file yang dilayani SSL (karena sertifikat S3 wildcard S3 tidak akan cocok dengan file.domainanda.com.s3.amazonaws.com): secure-domainAnda.s3.amazonaws.com . Sekarang Anda memiliki dua ember untuk dikelola, bukan satu. Bukan masalah besar, tetapi dalam aplikasi web, kompleksitas lebih dari apa yang benar-benar dibutuhkan menyebalkan.
andrew
7
Hai, saya sebenarnya adalah orang yang menulis tautan referensi yang Anda letakkan di sana "Joonha". Permata kecil yang tidak boleh dilewatkan adalah menggunakan teknik itu + "//" sendiri sebagai awal protokol Anda. Di bisnis pengembangan e-niaga saya, kami melakukan tautan ke URL dengan "//" dan bukan "https: // atau" http: // "karena kami tidak perlu peduli pada saat itu.
Jason Sebring
4
Tampaknya ini tidak berfungsi lagi, saya mendapat kesalahan PermanentRedirect.
Paulo Casaretto
5
Lihat jawaban baru saya mengenai mengapa ini bekerja untuk sebagian orang dan bukan orang lain. Itu penting di wilayah mana ember Anda berada.
Nate
47

Jawaban payton109 benar jika Anda berada di wilayah US-EAST-1 default. Jika ember Anda berada di kawasan yang berbeda, gunakan URL yang sedikit berbeda:

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

Di mana <region>nama lokasi bucket. Misalnya, jika ember Anda berada di wilayah us-west-2(Oregon), Anda dapat melakukan ini:

https://s3-us-west-2.amazonaws.com/your.domain.com/some/asset
Nate
sumber
1
Saat menggunakan data DNS CNAME, ini hanya soal resolusi domain, jadi Anda tidak bisa mengalihkan ke url dengan path. Lihat juga: stackoverflow.com/questions/32714351/…
Sebastien Lorber
Ini bekerja untuk saya dan merupakan jawaban yang paling lengkap.
Besimple
2
Ini bagus, tetapi melewati aturan hosting situs web statis, seperti aturan pengalihan ke index.html
Kim T
Ini adalah solusi sempurna untuk pengembang web tanpa tim devops atau sys-admin. Tentu, aset Anda tidak akan memiliki domain yang elegan, tetapi berapa banyak pelanggan yang memeriksa html atau permintaan mendasar dan tsk tsk tsk di url domain? Tidak banyak! Melepaskan aset statis Anda dari aplikasi dan ke S3 adalah langkah pertama yang bagus.
stwr667
8

Seperti yang dinyatakan sebelumnya, itu tidak mungkin secara langsung, tetapi Anda dapat mengatur Apache atau nginx + SSL pada instance EC2, CNAME domain yang Anda inginkan, dan reverse-proxy ke URL S3 (non-custom domain) S3.

Mark Wang
sumber
Salah satu cara untuk menemukan jalur SSL yang sepenuhnya memenuhi syarat untuk sumber daya S3 adalah dengan menelusuri menggunakan AWS console. Path lengkap ditampilkan di bagian bawah tab Overview.
eric gilberts