iT邦幫忙

1

[SSL LOCALHOST] - 整合 SSL 來進行開發

現在的網站大部份都要使用 SSL 來進行瀏覽的動作,網站開發也是要 SSL ,所以現在 SSL 己經是一個最基本的要求的一部份。

所以做為一位開發者,要如何在開發的過程也能夠結合 SSL 在 Localhost 呢?? 其實很簡單,但你要準備以下的環境才能夠達到。

  1. 申請網域名,提供一組三級網域名
  2. 申請免費 SSL ,建議使用 SSLFREE https://www.sslforfree.com/
  3. 安裝 SSL 憑證
  4. 設定 IIS 站台並設定 443
  5. Visual Studio 2017 開啟站台
  6. SSL FREE + Domain 用在那裡??

[申請網域名,提供一組三級網域名]

  • 請申請一個 Domain Name,任何一個可以註冊的網址 ISP 都可以。 以 PCHOME 為說明
    https://ithelp.ithome.com.tw/upload/images/20190112/201048511NBiE0qpTc.jpg
    上面的圖示,紅色框是三級網域名的名稱,請填寫一個三級網域名並且將 IP 設定為 127.0.0.1,類型為 A 項目。

[特別說明]
127.0.0.1 是現在您使用「電腦」並不是「對方主機」,這個必須要了解一下。當您設定完成並且生效,就可以使用了 三級網域名.DomainNAME.com 。
不會有人使用「主網域名」來做 127.0.0.1,主網域名大部份都是入口網站對外營運用。當然您可以直接用啦..
[經驗談]
申請 Domain NAME 最好是可以簡單操作、常聽的,別那種小小間 ISP 來申請你的 Domain Name,到時候移轉時找不到人,或是要拿回來使用權,那家廠商己經倒了,還要靠主機房業者來找到業者才能夠移轉。多花點 Domain 的服務費不比 找不到業者 來的好很多...

[申請免費 SSL]

[安裝 SSL 憑證]

  • 將申請回來的 SSL FREE Download 下來並使用 OPENSSL 的工具將 SSLFREE 轉換成 IIS 可以整合與使用的,請下載 OPENSSL TOOLS http://slproweb.com/products/Win32OpenSSL.html ,下載應用程式,請選擇你使用的作業系統為何!! 並且下載後安裝這個工具即可都預設的路徑即可,並 COPY 以下的指令,你的路經不要有任何空白轉換會失敗。
C:\OpenSSL-Win64\bin\openssl pkcs12 -export -out [要儲存的位置]\certificate.pfx -inkey [儲存憑證的位置]\private.key -in [儲存憑證的位置]\certificate.crt -certfile [儲存憑證的位置]\ca_bundle.crt

[要儲存的位置] >> 就是將 OpenSSL 轉換完成的檔案要儲存在那裡
[儲存憑證的位置] >> 你申請完並下載的 SSL 憑證在那裡
置換完成並執行,會詢問你是否要有密碼!! 這個密碼是您安裝此憑證會出現輸入的項目,如果不要密碼請按 Enter 鍵就可以了,轉換完成只要在 己轉換成功 的憑證上點二下,就會出現要不要匯入此憑證,匯入時請選擇 [本機電腦] 即可

[設定 IIS 站台並設定 443]

  • 安裝好的 SSL FREE for IIS 就會出現在您的伺服器憑證內
    https://ithelp.ithome.com.tw/upload/images/20190112/20104851iU6KccLqx2.jpg
    https://ithelp.ithome.com.tw/upload/images/20190112/20104851MHHGpEUob8.jpg

這時候請您設定一個站台,請在站台用滑鼠按右鍵 [新增網站](設定時預設會是80埠),您可以選擇直接 https 並指向您的實體檔案目錄位置即可,站台名稱你可以自己取名這不會影響。大概如下的設定...
https://ithelp.ithome.com.tw/upload/images/20190112/20104851JLg8zQRgHH.jpg

這樣子就設定好您的網站了,那你就可以在瀏覽器上輸入你的網址 https://三級網域名.YouDomainName.com/Index.html 就可以看得到支援 SSL 。

[注意事項]
免費的 SSL 憑證只能使用在 [開發應用] 上,如正式對外服務一定要申請正式的 SSL 憑證中心,以上的說明只限制於 [開發應用] 上,千萬別拿公司商譽來開玩笑,相關 SSL Free 請參考以下說明
https://www.inside.com.tw/article/8203-ssl_certificate

[Visual Studio 2017 開啟站台]

  • Visual Studio
    當您以上的處理都己正確,那您就可以透過 Visual Studio 來開啟站台,但請注意你的 Domain Name IP 指向為 127.0.0.1 不能夠指向其他對外 IP ,不然你的 Visual Studio 站台將無法開啟!!
    Visual Studio 在讀取網站時會去認 Domain Name IP 是在那裡!! 127.0.0.1 = LocalHost 所以 Visual Studio 會認定你是在單機下的 IIS 進行開發網站的動作。
    開啟後的網站開發執行時就可以用 https://三級網域名.YouDomainName.com/ 來瀏覽網站內容,那執行上就跟你瀏覽網站的執行完全一樣並支援 SSL

[SSL FREE + Domain 使用在那裡??]

  • 整合外部網站:現在程式開發大部份都會整合外部服務,而這些外部服務在你執行的過程中都必須使用 SSL 來確定傳遞過程的安全性要一樣支援 SSL ,沒有 SSL 的話就無法導向資料到你的機器上。

使用 Domain name 最主要提供外部網站整合,外部網站透過 Domain name 傳遞給你,並不會有任何影響 「除了,主機上執行網址」 才會發動此 127.0.0.1 ,但是主機上不會有您的三級網域站台,正式環境設定 Debug 站台來執行是非常的奇怪行為,也不會有這樣子的情形。 所以你在執行的過程是你人 [正在前面執行電腦],所以發動的過程不會是在主機上,這一點你必須要明確了解..

使用這方式,我的外部服務商為 國外大型電子商務 ,我接收他的訂單,並取得相關 Request 的資料寫入資訊,再透過整理好的內容,導出相關資料回到 [外部服務商] 接收處理後的結果。以此模式,將可以方便網站型態的程式開發,不用還得透過主機接到資料再分析結果並再處理...

用 DomainName 來做開發優點:

  1. 可能得花你一筆錢小錢,來申請你的 Domain name ,但這至少比你使用 https://localhost:xxxx 開發上完整性好很多,展示你的專業可以這麼做 https://專案名稱或是客戶的官網名字.YouDomain.com ,開發完成的專案你可以另外再申請三級網域名,告訴你的客戶你的最新專案進度在 https://客戶官網.YouDomain.com 就可以瀏覽最新的進度了,SSL 不用錢,愛申請多少個都可以。

  2. Domain 指向為 127.0.0.1 任何工程師可以整合與使用,例如申請一個三級網域名 https://Program.YouDomain.com 並給於 SSL FREE 給所有的工程師做為開發的標準也可以,就不用申請一堆。而且不用擔心會有影響,因為執行的過程都是指向 127.0.0.1 = localhost 你現在使用的電腦。

  3. 透過 Domain name 你可以在任何機器上開發程式。例如桌機上開發,當你要出外見客戶,帶著你的筆電,透過 git下載你剛才的站台,執行過程,就跟你在桌機上都是一樣的並且支援 SSL 。安裝 SSL 與設定站台的模式都是一樣的,而且轉換完成的 SSL 你也可以用在筆電上 點二下安裝憑證於本機電腦 ,SSL 憑證是認 Domain name 並不是 IP 所以執行上不會有任何 SSL 不能夠使用的情形

  4. SSL FREE 申請與安裝非常的簡單易懂,當三個月SSL憑證要過期,重新再申請並下載 SSLFREE 檔案,透過語法你更可以簡簡單單完成 SSL 轉換,你也可以寫一個常駐程式只要有 SSL 檔案存在某一個目錄,就自動轉換成 IIS 專用檔案。

  5. 結合網路硬碟像是 Google , Microsoft 轉換完成的 SSL 憑證透過分享,任何工程師收到點二下這個網站就可以使用了..


1 則留言

0
eeezzz
iT邦新手 5 級 ‧ 2019-01-18 23:45:18

看不明白在DNS設定,和後續去SSL FREE 申請這段。
我有一個Domain: iamok.tw
然後我設了一個testssl 127.0.0.1 A

到SSL Free是申請 testssl.iamok.tw 是嗎?
但如果是這樣,在download ssl cert 這步驟,點下去要驗證時,是連到127.0.0.1,是不可能驗證成功的,就不會有憑證可以下載。

我是錯過了那個過程?

Hello eezzz

如您可以操作 iamok.tw 這個 Domain 在申請 SSLFREE 有使用 FTP、手動、DNS 這三個選項,您可以選擇 DNS 驗證方式那您選擇後會出現

Add TXT record with the name/host
__acme-challenge.testssl.iamok.tw

填寫到你的 DNS 申請項目為 TXT 值的內容如下
RH6TI_bRFSf9Fz7P4c1QvZQCPfyq99yMvn5F93crpXw

您可以看我圖示 [申請網域名,提供一組三級網域名] 的圖示,如以 PCHOME 來說我會將 __acme-challenge.testssl.iamok.tw 改成 __acme-challenge.testssl 因為 PCHOME 不接受相同的 Domain Name ,只要這樣子設定好 過一段時間給 DNS UPDATE 再按 [Download SSL Certificate] 就可以出現您的 DNS TXT 參數值己被認可確定有此網址。

如果 DNS TXT 還未生效您會得到

Warning: Your verification URL is not returning the correct contents to our verification servers. The URL looks like it is blocking bots and which inadvertently blocks our servers from receiving the correct content. Contact your host, a professional developer or admin for further help with fixing it.

即表示您的 TXT DNS UPDATE 還未生效。如一切都正確那你就可以得到一個 ZIP 裡面就有憑證了..

eeezzz iT邦新手 5 級‧ 2019-01-23 13:48:27 檢舉

好的。原來是以DNS方式申請,我完全搞錯方向了。感謝您這麼詳細的解說。我去試試。

我要留言

立即登入留言