2016年4月1日 星期五

AWS 隨意筆記 (4) 申請 AWS Certificate SSL 憑證用於 CloudFront (HTTPS)

2

上一篇在cloudfront的distribution設定中,使用預設的SSL憑證:Defult CloudFront Certificate (*.cloudfront.net)實現HTTPS。

如果要用自訂網址實現HTTPS,要再進行設定:

設定前,如圖,自訂網址用HTTP雖然可以連上(因為設定了Viewer Protocol Pollicy為:Both HTTP and HTTPS ),但並非HTTPS。

圖一:


AWS Certificate Manager 簡介:

首先就是申請憑證。

不用到處去尋找、考慮要花多少錢,現在AWS可以直接利用AWS Certificate Manager 來申請SSL憑證了,不需費用。

目前AWS Certificate Manager 產生的憑證,只限與Elastic Load Balancing 和 Amazon CloudFront 搭配使用。

可參考 AWS官網介紹:AWS Certificate Manager

使用 AWS Certificate Manager 無須支付額外的費用即可佈建 SSL/TLS 憑證。您只需支付為執行應用程式而建立的 AWS 資源的費用,例如 Elastic Load Balancers 或 Amazon CloudFront 分發。


2016.01 New – AWS Certificate Manager – Deploy SSL/TLS-Based Apps on AWS

(這類免費憑證通常只有基本功能,如果是要用在需要高安全性的網站,例如線上購物交易、金流服務、企業機密往來等,請務必花錢購買專業級憑證啊。)


申請 AWS Certificate:

進入AWS主控台,在中間找到「Certificate Manager」。

如圖:

按下左上角的「請求證書」,進入申請畫面:

首先要填寫網域,可以一次填寫多個相關的網域;如果要保護全部子網域,就寫 *.xxx.com 。

圖二:

然後開始進行電子郵件驗證,會向域名的所有者發送郵件,請先確認網域的Who Is訊息是否填了正確的信箱。

圖三:

檢查信箱,發現收到了標題為 Certificate approval for [ xxx.com] 的信件,打開後按下"I Approve"完成驗證。

圖四:

圖五:

在Certificate Manager畫面可以看到目前證書的狀態。

證書期限為一年。

圖六:

也可參考 官方說明文件:Requesting and Managing ACM Certificates


更改 CloudFront distribution 憑證設定:

目前CloudFront提供兩種自訂SSL方式 (詳見 AWS官網介紹:Amazon CloudFront 自訂 SSL 憑證 ) :

1. SNI 自訂 SSL (SNI Custom SSL):

此項免費 ( 此功能無單獨定價。使用 SNI 自訂 SSL 進行憑證管理無須預付費或每月費用,您只需按照一般 Amazon CloudFront 資料傳輸和 HTTPS 請求費率支付費用。)

有些舊型瀏覽器與機種不支援 (如: ie6 , windows xp , firefox before 2.0, chorme before 6.0......),詳見 Wiki: Server Name Indication 。

2. 專用 IP 自訂 SSL (Dedicated IP Custom SSL):

如果需要將內容交付給不支援 SNI 的瀏覽器,您可以使用專用 IP 自訂 SSL 功能。透過這項功能,CloudFront 會分配專用 IP 地址,在每個 CloudFront 節點為 SSL 內容提供服務。

要使用專用 IP 自訂 SSL 憑證支援,請上傳 SSL 憑證並使用 AWS 管理主控台,將其與您的 CloudFront 分發建立關聯。如果您需要將兩個以上的自訂 SSL 憑證與 AWS 帳戶建立關聯,請將使用案例的相關詳細資訊及要使用的自訂 SSL 憑證數量加入 CloudFront 上限提高申請表。

專用 IP 自訂 SSL 的定價非常簡單。因為與每個 SSL 憑證關聯的專用 IP 地址會產生額外的成本,因此我們針對與 CloudFront 分發關聯的每個自訂 SSL 憑證每月固定收取 600 USD 的費用,依小時按比例計算。

此項服務每月費用為600USD (約兩萬台幣),請務必小心使用......


總之,我要使用的是前者(SNI Custom SSL),到CloudFront畫面,點選 Distribution > General > Edit ,修改相關設定,如下圖。

圖七:

在Custom SSL Certificate 下方下拉選單,可選取剛申請到的AWS certificate。

如果沒有需求,就不要選Custom SSL Client Support: All Clients 這項,以免要付費。

設定後,相關欄位的內容改變了:

圖八:

於是CloudFront的自訂網址成功支援了HTTPS。

圖九:

也可參考 官方說明文件:Using an HTTPS Connection to Access Your Objects

2 則留言:

  1. Hi 您好,有個問題想請教您
    由於我的 s3 是使用 cname 的方式,利用 domain 與 bucket name 相同,來達成 cname
    想請問 AWS Certificate Manager 一定要配合 CloudFront 一起使用嗎?

    如果是必須搭配 CloudFront 一起使用的話,那是否我要開一個 CloudFront 來將我原本的 domain 設定指向該 bucket 呢?

    回覆刪除
  2. 請問我要去哪邊更改收件的email?我申請noneman.com這個網域名,然後amazon將信寄到以下這些不相干的地方去了= =
    webmaster@noneman.com
    hostmaster@noneman.com
    mike.weaner@accesstoledo.com
    admin@noneman.com
    jarmstrong@telesystem.us
    administrator@noneman.com
    mweaner@cdstoledo.com
    postmaster@noneman.com

    回覆刪除

歡迎分享本文~