2012-06-26 99 views
110

我正在使用Amazon S3存儲桶上傳和下載使用我的.NET應用程序的數據。現在我的問題是:我想使用SSL訪問我的S3存儲桶。是否可以爲Amazon S3存儲桶實施SSL?如何爲Amazon S3存儲桶配置SSL

在此先感謝。

+0

可能幫助:[在Amazon S3靜態網站上實現SSL](https://knightlab.northwestern.edu/2015/05/21/implementing-ssl-on-amazon-s3-static-websites) – vsync

回答

125

您可以通過SSL訪問您的文件是這樣的:

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

如果你使用你的水桶一個定義域,你可以與自己的SSL證書使用S3和CloudFront的(或產生通過一個免費的亞馬遜證書管理器):http://aws.amazon.com/cloudfront/custom-ssl-domains/

+32

這並不完全真正。您可以使用不帶圓點的存儲桶名稱:https://this-is-my-awesome-bucket.s3.amazonaws.com亞馬遜有一個通配符證書。由於您不能使用點,您不能讓CNAME域指向您的存儲桶。 – Docunext

+1

@Docunext:這一個解決了我的問題,我試了幾個小時。感謝那! – hereandnow78

+4

小心包含句點的存儲桶名稱! SSL不能在iOS設備上運行,但在Chrome中可以正常工作。請參閱http://stackoverflow.com/questions/3048236/amazon-s3-https-ssl-is-it-possible –

26

自定義域的SSL證書今天剛剛添加/證書/月$ 600。註冊您的邀請之下: http://aws.amazon.com/cloudfront/custom-ssl-domains/

更新:SNI客戶無需支付額外費用提供證書are now available。比$ 600 /月便宜很多,而且XP幾乎被殺死了,它在大多數使用情況下都能很好地工作。

@skalee AWS有一個機制來實現海報要求的「爲Amazon S3存儲桶實施SSL」,它被稱爲CloudFront。我正在閱讀「實施」作爲「使用我的SSL證書」,而不是「僅在HTTP URL上輸入S,我確信OP可能推測出這樣的結果

由於CloudFront的成本與S3完全相同/ GB),但有一噸左右的SSL附加功能,讓您在不增加額外成本的增加自己的SNI證書,它是你的域「實施SSL」。

+57

CloudFront不是S3。 – skalee

+4

@skalee正確,但如果您想通過具有自定義SSL證書的域訪問它,則可以按照OP請求來設置自定義CNAME SSL證書,並通過CF訪問它。 –

+1

目前,我設置了兩個CNAME:static-s3和static-cf,第一個指向我的S3,第二個指向CF.首先不能支持SSL,其次可以,但它是CF而不是S3,正如skalee指出的那樣。這是我認爲我們現在可以做的最好的。 – Danger

3

如果你真的需要它明顯的修復,考慮重定向。

例如,在請求assets.my-domain.example.com/path/to/file,你可以執行301或302重定向到my-bucket-name.s3.amazonaws.com/path/to/files3.amazonaws.com/my-bucket-name/path/to/file(請記住,在第一種情況下my-bucket-name不能包含任何點,否則將不符合S3證書中規定的*.s3.amazonaws.com, s3.amazonaws.com)。

沒有測試,但我相信它會工作。然而,我看到幾個陷阱。

第一個是很明顯的,額外的請求得到這個重定向。我懷疑你可以使用你的域名註冊商提供的重定向服務器 - 你必須以某種方式上傳適當的證書 - 所以你必須使用你自己的服務器。

第二個是,你可以在網頁源代碼中您的域名網址,但例如當用戶打開單獨的選項卡的PIC,然後地址欄會顯示目標URL。

+0

我不確定,但我認爲這可能會導致CORS問題。 – xdhmoore

8

我發現,您可以通過雲服務耀斑做到這一點很容易。

建立一個存儲桶,在存儲桶上啓用webhosting,並通過Cloudflare將所需的CNAME指向該端點...並支付當然的服務費用......但是$ 5- $ 20 VS $ 600更容易受到影響。

這裏充分細節: https://www.engaging.io/easy-way-to-configure-ssl-for-amazon-s3-bucket-via-cloudflare/

+0

這不適合我。 '您嘗試訪問的存儲桶必須使用指定的端點進行尋址。請將所有未來請求發送到此端點。 subdomain.mydomain。COM s3.amazonaws.com ' – Jay

+0

這裏試試我的嚮導:https://www.engaging.io/easy-way-to-configure-ssl-for-amazon-s3-bucket-via-cloudflare/ –

2

這是不可能的S3直接,但是從你鬥,你可以創建一個雲鋒分佈。然後轉到證書管理器並申請證書。亞馬遜免費提供。您已成功確認認證,將其分配到您的Cloud Front分配。還請記住設置規則以將http重定向到https。

我在亞馬遜S3上託管幾個靜態網站,就像我的個人網站:Developer,因爲他們擁有Cloud Front發行版,所以我已將其分配給了SSL證書。

+0

,你是如何分配域名的? – netshark1000

+0

首先轉到證書管理器並請求新證書。如有必要,在那裏添加您的域名,並在其中包含子域名。如果要將子域名放在那裏,並不會造成任何傷害,那麼只需將example.com和* .example.com放在那裏即可。 –

0

如前所述,您無法爲S3存儲桶創建免費證書。但是,您可以創建Cloud Front分發,然後爲Cloud Front分配證書。您爲您的域請求證書,然後將其分配到Cloud Front設置中的Cloud Front分配。我用這個方法通過像https://laina-apu.fi/ SSL服務靜態網站以及提供靜態文件,如https://casino-professor.com/en/(取其中圖像正在服的樣子。從一個子域)

對於靜態網站創建亞馬遜是去的地方。使用SSL獲取靜態網站確實很實惠。

相關問題