架設雲端主機(https含SSL申請完整流程)

  • 3552
  • 0

大約是從2016年開始學寫程式的,在決定專題的時候剛好看到LINE Char Bot發布的訊息,從那過後就一直對Bot很感興趣,但苦於對API不熟悉、對建置環境並設定為https更是不了解,所搜尋到的資料都有某些原因不能使用,使得這個問題一延再延,好險當時專題使用的環境是Azure,本身就支援https。但是專題結束後還是認為這些流程沒有走過一次,心裡很不踏實...

於是不斷嘗試、不斷失敗中,其中在用作網域驗證並頒發憑證這塊更是找不到解法,在半年後,經歷了嘗試到放棄無數次,終於找到一套完整的申請流程,在這邊把整體方向記下來,並且分享給想使用https的朋友。

有要開發BOT的朋友也可以參考這篇,因為https是BOT的必要設定,跑不掉的。

至於為什麼我使用.NET的語言,卻使用亞馬遜的雲端服務呢?我的信用卡在azure已經綁過了 不能用啦~

 


大致上分為幾個大項目

一、申請雲端主機

  1. 設定IP
  2. 登入虛擬機
  3. 安裝IIS

二、申請DNS

  1. 註冊網域
  2. 網域綁定IP

三、申請SSL憑證

  1. 網域驗證
  2. 憑證轉換
  3. 安裝憑證

申請雲端主機

前置步驟:申請亞馬遜帳號,並且綁定信用卡,註冊完畢後再繼續往下做。

AWS EC2連結

創建實例

 

勾選僅免費套餐

※注意!,傑夫在一開始玩的時候,似乎有不小心點錯,而申請到大容量虛擬機,而導致後續被收費,實際導致收費的步驟在哪邊尚未明白,如果要參考這些操作步驟,請密切注意產生的金額。

 

畫面往下拉,找到Windows

 

點選審核和啟動如果要限定可進入虛擬機的IP,可以在步驟7的時候去設定安全模組

 

按下啟動後會要求選擇密鑰,由於剛開,所以選擇新建。這個密鑰非常重要,請妥善保管!!!下載密鑰後按下啟動實例。

 

等待的同時可以跳去第二大項,先申請網域DNS

 

回到EC2的控制面板,點擊剛剛申請的實例後,點選上方的連接

 

會跳到這個畫面,公有DNS就是等等要進入虛擬機位置,先把它記起來

 

點選獲取密碼後,會出現視窗要你放入剛剛下載的密鑰,上傳後就點選解密吧解密完成後會拿到一組密碼

 

此時回到Windows中,在開始=>執行位置,輸入MSTSC

輸入公有DNS

使用者名稱輸入「」,密碼應該不用我多說吧?

 

安裝IIS,文章可以參考這篇

開啟伺服器管理員

 

新增角色及功能「Add roles and features」

 

下一步 直到「Server Roles」

※註 如果是使用ASP.NET時候,必須到「Features」內把.NET4.6的選項都打勾,不然會出現IIS error 500

 

下一步直到「Role Services」,如果有IIS工具想安裝可以在這邊設定

 

按下安裝吧!!

 

安裝完成後會出現這個頁面

 

打開瀏覽器,在網址列輸入「http://localhost/」

看到畫面如果看到這個畫面後,轉用本機的瀏覽器瀏覽AWS提供的IP、公有DNS

理應也會看到相同畫面,如果無法連線等等的,請先確認安全模組設定是否可讓外部連線

 

到這邊先恭喜你已經完成了大約三分之一(被K...

在往下走就是跟SSL相關了,請先走完申請網域、申請憑證,拿到憑證後再回來繼續做下去

 

點擊IIS的Server Cetificates

在右側找到Import

把剛剛得到的「certificate.pfx」移至虛擬機中,並輸入憑證位置,密碼為建立憑證時的那組密碼

回到站台中繫結憑證

點選Add

Type改Https,SSL那塊選擇你的網域名稱後按下OK!

如果限定只能走https的話,則來到這個地方更改

 

選像打勾後按下套用

再來回到wwwrood資料夾內就可以去建置網站囉!


二、申請網域

參考這篇

網域申請

先行註冊,一樣要先完整的填寫資料,後續才可以使用唷!

輸入網域,並確認網域可使用網域有哪些

 

之後會跳到這個頁面來,只有右邊有顯示馬上獲取的網域,才是可以使用的

 

獲取後點擊上方付款

 

到這邊的時候,先回EC2控制面板,把狀態欄拉到右側,會有個IPv4 公有IP

先複製起來!

回到申請DNS的地方,點選USE DNS,IP address貼上剛剛拿到的IP,右側的Period改為12 Months @Free(網域有效期限)

確認一下金額,沒錯的話把資料填寫完整,然後拉到最下方,詳閱相關事項後,送出~

(如果跑了二三分鐘,都沒有跳轉頁面,上述動作再重跑一次)

 

完成後點選Services > My Domains,找到剛剛申請的網域名稱

 

點選Manage Domain

 

管理網域=>註冊網域

 

Nameserver填寫網域名稱,IP Address填寫AWS的IP地址

 

此時會出現這個訊息

到這邊需要過一段時間讓網域生效,最長可能達到24小時

到目前為止申請網域告一段落囉!

 

網域生效後,連結這個申請的網域,會出現跟http://localhost/一樣的畫面


三、申請SSL

參考文章

SSL申請網址

填入剛剛申請的網域名稱如果有多個子網域的話,在這邊可以以空格區分。

 

點選中間的手動驗證後

 

往下滑點

 

此時會出現二個載點、二個檔案

先把上述二個檔案下載下來,然後回到虛擬機

在開始執行中輸入「inetmgr」開啟IIS

找到MIME Types

※注意,這個步驟是在設定可讀取路徑,做錯了後面怎麼死的都不知道XD

這個步驟跟驗證檔案存放資料夾「.well-known」有關

點開後點擊右側的Add後,照著圖片輸入後按OK

 

此時會多出一筆這樣的資料

接著到虛擬機中的路徑「C:\inetpub\wwwroot」

新增一個檔名為「.well-known」的資料夾

此時會跳出錯誤訊息

請把資料夾名稱改為「.well-known.」即可

再進入.well-known的資料夾中,新增一個名稱為「acme-challenge」的資料夾

這二個新增資料夾的步驟,就是在對應這一段

然後進到「acme-challenge」資料夾中,把剛剛下載的這二個檔案丟進去

再回到剛剛申請SSL的網頁,點選連結內的二個網址(二個都要點)

 

如果看的到亂碼代表可以驗證(不能的話就是步驟有錯,把前面的步驟看清楚),此時再點擊

 

會出現

 

再來!請妥善保存目前產生的三段代碼

Certificate、Private Key、CA Bundle然後下載下載後請將檔案解壓縮出來,並記好存放路徑

 

請進入這個網址下載檔案

 

安裝

 

開啟TXT檔,把這段文字存入,並置換路徑「自行替換路徑」,路徑轉為剛剛下載的檔案存放位置(記得解壓縮阿)

C:\OpenSSL-Win32\bin\openssl pkcs12 -export -out 自行替換路徑\certificate.pfx -inkey 自行替換路徑\private.key -in 自行替換路徑\certificate.crt -certfile 自行替換路徑\ca_bundle.crt

然後開啟CMD輸入剛剛打好的指令

 

出現後就輸入密碼吧!

輸入密碼感覺很像沒輸入,不過打就對了,後續還會要你做第二次輸入密碼驗證

密碼輸入完成後終於拿到憑證囉!(在原本的檔案存放位置)

此時再跳回第一項,繼續做IIS的相關設定


 

此篇整理希望對於需要使用https的朋友有所幫助,對於要玩BOT需要走https的朋友也可以參考此篇哦!


LINE討論群FB討論區

歡迎您的加入,讓這個社群更加美好!

聯絡方式:
FaceBook
E-Mail