大約是從2016年開始學寫程式的,在決定專題的時候剛好看到LINE Char Bot發布的訊息,從那過後就一直對Bot很感興趣,但苦於對API不熟悉、對建置環境並設定為https更是不了解,所搜尋到的資料都有某些原因不能使用,使得這個問題一延再延,好險當時專題使用的環境是Azure,本身就支援https。但是專題結束後還是認為這些流程沒有走過一次,心裡很不踏實...
於是不斷嘗試、不斷失敗中,其中在用作網域驗證並頒發憑證這塊更是找不到解法,在半年後,經歷了嘗試到放棄無數次,終於找到一套完整的申請流程,在這邊把整體方向記下來,並且分享給想使用https的朋友。
有要開發BOT的朋友也可以參考這篇,因為https是BOT的必要設定,跑不掉的。
至於為什麼我使用.NET的語言,卻使用亞馬遜的雲端服務呢?我的信用卡在azure已經綁過了 不能用啦~
大致上分為幾個大項目
一、申請雲端主機
- 設定IP
- 登入虛擬機
- 安裝IIS
二、申請DNS
- 註冊網域
- 網域綁定IP
三、申請SSL憑證
- 網域驗證
- 憑證轉換
- 安裝憑證
申請雲端主機
前置步驟:申請亞馬遜帳號,並且綁定信用卡,註冊完畢後再繼續往下做。
創建實例
勾選僅免費套餐
※注意!,傑夫在一開始玩的時候,似乎有不小心點錯,而申請到大容量虛擬機,而導致後續被收費,實際導致收費的步驟在哪邊尚未明白,如果要參考這些操作步驟,請密切注意產生的金額。
畫面往下拉,找到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
填入剛剛申請的網域名稱如果有多個子網域的話,在這邊可以以空格區分。
點選中間的手動驗證後
往下滑點
此時會出現二個載點、二個檔案
先把上述二個檔案下載下來,然後回到虛擬機
在開始執行中輸入「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的朋友也可以參考此篇哦!
歡迎您的加入,讓這個社群更加美好!