Cara Mengkonfigurasi ember SSL untuk Amazon S3

142

Saya menggunakan ember Amazon S3 untuk mengunggah dan mengunduh data menggunakan aplikasi .NET saya. Sekarang pertanyaan saya adalah: Saya ingin mengakses ember S3 saya menggunakan SSL. Apakah mungkin untuk mengimplementasikan SSL untuk bucket Amazon s3?

Syam kumar
sumber
Mungkin bisa membantu: Menerapkan SSL di Amazon S3 Static Websites
vsync

Jawaban:

151

Anda dapat mengakses file Anda melalui SSL seperti ini:

https://s3.amazonaws.com/bucket_name/images/logo.gif

Jika Anda menggunakan domain khusus untuk bucket Anda, Anda dapat menggunakan S3 dan CloudFront bersama dengan sertifikat SSL Anda sendiri (atau menghasilkan yang gratis melalui Amazon Certificate Manager): http://aws.amazon.com/cloudfront/custom-ssl- domain /

reach4thelasers
sumber
42
Itu tidak sepenuhnya benar. Anda dapat menggunakan nama bucket tanpa titik: this-is-my-awesome-bucket.s3.amazonaws.com Amazon memiliki sertifikat wildcard. Karena Anda tidak dapat menggunakan titik, Anda tidak dapat memiliki domain CNAME yang menunjuk ke ember Anda.
Docunext
4
hati-hati terhadap nama ember yang berisi titik! SSL tidak akan berfungsi di perangkat iOS tetapi akan bekerja dengan baik di Chrome. Lihat stackoverflow.com/questions/3048236/…
Simon_Weaver
1
Amazon CloudFront akan melakukan ini untuk Anda.
Greg
3
Untuk memiliki nama notasi titik ember (sehingga Anda dapat menggunakan alias Rute 53) dan Anda ingin PUT objek melalui REST, pastikan nama host cocok dengan wilayah. Misalnya, bucket saya ada di dalam us-west-2sehingga nama host sebenarnya s3-us-west-2.amazonaws.comkalau tidak Anda mendapatkan kesalahan.
noetix
1
tanpa cloudfront, bisakah kita mencapai ini?
Arun Kumar
28

Sertifikat SSL domain kustom baru saja ditambahkan hari ini sebesar $ 600 / cert / bulan. Daftar untuk undangan Anda di bawah ini: http://aws.amazon.com/cloudfront/custom-ssl-domains/

Pembaruan : Sertifikat yang disediakan pelanggan SNI sekarang tersedia tanpa biaya tambahan. Jauh lebih murah daripada $ 600 / bulan, dan dengan XP hampir mati, itu harus bekerja dengan baik untuk sebagian besar kasus penggunaan.

@skalee AWS memiliki mekanisme untuk mencapai apa yang diminta poster, "terapkan SSL untuk ember Amazon s3", begitu sebutannya CloudFront. Saya membaca "menerapkan" sebagai "menggunakan sertifikat SSL saya," tidak "hanya menaruh S pada URL HTTP yang saya yakin OP bisa menduga.

Karena CloudFront biayanya persis sama dengan S3 ($ 0,12 / GB), tetapi memiliki banyak fitur tambahan di sekitar SSL DAN memungkinkan Anda untuk menambahkan sertifikat SNI Anda sendiri tanpa biaya tambahan, itu adalah perbaikan yang jelas untuk "menerapkan SSL" di domain Anda.

Joseph Lust
sumber
64
CloudFront bukan S3.
skalee
6
@ skalee Benar, tetapi jika Anda ingin mengaksesnya melalui domain dengan sertifikat SSL khusus, sesuai permintaan OP, Anda dapat mengatur sertifikat CNAME SSL kustom dengan cara ini dan mengaksesnya melalui CF.
Joseph Lust
2
Untuk saat ini, saya telah menyiapkan dua CNAME: static-s3 dan static-cf, yang pertama menunjuk langsung ke S3 saya, yang kedua ke CF. Pertama tidak bisa mendukung SSL, kedua bisa, tetapi CF dan bukan S3 seperti yang ditunjukkan skalee. Itu yang terbaik yang saya pikir bisa kita lakukan sampai sekarang.
Bahaya
2
WOW Saya kira mereka harus mengganti biaya penyimpanan yang semakin murah. setidaknya itu sudah proporsional. jika Anda hanya menggunakan sertifikat SSL selama 1 jam dalam sebulan hanya $ 20 ;-)
Simon_Weaver
1
@ Elegan. Membuat skrip jika Anda memiliki sertifikat SSL khusus (bukan sertifikat SNI) maka mesin itu memerlukan IP khusus yang menimbulkan biaya. mungkin IP khusus diperlukan untuk Anda di setiap lokasi di seluruh dunia tempat S3 menyimpan data Anda. Jadi itu bertambah. Tapi saya pikir itu terutama hanya posting orang tidak membutuhkannya dan mereka dapat mendongkrak harga bagi mereka yang melakukannya. Jika Anda tidak perlu mendukung IE6 maka Anda harus OK dengan sertifikat SNI di bawah CloudFront.
Simon_Weaver
3

Jika Anda benar-benar membutuhkannya, pertimbangkan pengalihan.

Misalnya, berdasarkan permintaan assets.my-domain.example.com/path/to/fileAnda dapat melakukan pengalihan 301 atau 302 ke my-bucket-name.s3.amazonaws.com/path/to/fileatau s3.amazonaws.com/my-bucket-name/path/to/file(harap diingat bahwa dalam kasus pertama my-bucket-nametidak dapat berisi titik, jika tidak akan cocok *.s3.amazonaws.com, s3.amazonaws.comdinyatakan dalam sertifikat S3).

Tidak diuji, tapi saya yakin itu akan berhasil. Saya melihat beberapa gotcha.

Yang pertama cukup jelas, permintaan tambahan untuk mendapatkan pengalihan ini. Dan saya ragu Anda bisa menggunakan server pengalihan yang disediakan oleh pendaftar nama domain Anda - Anda harus mengunggah sertifikat yang tepat di sana - jadi Anda harus menggunakan server Anda sendiri untuk ini.

Yang kedua adalah Anda dapat memiliki url dengan nama domain Anda di kode sumber halaman, tetapi ketika misalnya pengguna membuka pic di tab terpisah, maka bilah alamat akan menampilkan url target.

skalee
sumber
2
Saya tidak yakin tetapi saya pikir ini dapat menyebabkan masalah CORS.
xdhmoore
3

Tidak mungkin secara langsung dengan S3, tetapi Anda dapat membuat distribusi Cloud Front dari bucket Anda. Lalu pergi ke manajer sertifikat dan minta sertifikat. Amazon memberi mereka secara gratis. Yang Anda telah berhasil mengkonfirmasi sertifikasi, tetapkan ke distribusi Cloud Front Anda. Ingat juga untuk menetapkan aturan untuk mengarahkan kembali http ke https.

Saya hosting beberapa situs web statis di Amazon S3, seperti situs web pribadi saya yang telah saya berikan sertifikat SSL karena mereka memiliki distribusi Cloud Front.

Mika Kujapelto
sumber
dan bagaimana Anda menetapkan nama domain?
netshark1000
Pertama pergi ke manajer sertifikat dan minta sertifikat baru. Tambahkan domain Anda di sana dan sertakan juga subdomain di sana, jika perlu. Tidak ada salahnya untuk menempatkan subdomain di sana, jadi sebaiknya masukkan saja example.com dan * .example.com di sana.
Mika Kujapelto
0

Seperti disebutkan sebelumnya, Anda tidak dapat membuat sertifikat gratis untuk keranjang S3. Namun, Anda dapat membuat distribusi Front Cloud dan kemudian menetapkan sertifikat untuk Front Cloud. Anda meminta sertifikat untuk domain Anda dan kemudian hanya menetapkannya untuk distribusi Cloud Front di pengaturan Cloud Front. Saya telah menggunakan metode ini untuk melayani situs web statis melalui SSL dan juga melayani file statis.

Untuk pembuatan situs web statis, Amazon adalah tempat tujuan. Sangat terjangkau untuk mendapatkan situs web statis dengan SSL.

Mika Kujapelto
sumber
2
Untuk semua orang yang datang ke sini menggunakan google: Ingatlah untuk membuat sertifikat AWS Anda (juga) di wilayah N. Virginia. Kalau tidak, Anda tidak akan dapat memilihnya dalam distribusi CF Anda
KLoozen