From: 011netservice@gmail.com Date: 2023-04-17 Subject: readme-iis.txt 章節: #### 2023-04-17, 設定網站編碼格式. #### 2023-01-02, 網站匯入憑證 和 繫結 #### 2022-06-21, 設定 IIS 網站瀏覽 http 時自動轉成為 https. #### 2019-11-11, IIS7 版本以上的應用程式集區, 預設不啟動支援32位元, 導致部屬網站後, 卻無法執行瀏覽網頁. https://svc.011.idv.tw/CodeHelper/Windows/IIS/readme-iis.txt 歡迎來信交流, 訂購軟體需求. #### 2023-04-17, 設定網站編碼格式. □ 開啟 IIS後, 若要全部網站, 則選擇主機, 否則選擇站台. □ 開啟 .NET 全球化, 將文化特性中的 回應、回應標頭、要求、和檔案, 都改成需要的編碼格式, 例如: UTF-8. □ 按套用以後, 會將設定值存入 web.config 中. 所以直接修改 web.config 也可以! □ web.config web.config 範例如下: #### 2023-01-02, 網站匯入憑證 和 繫結 □ 匯入憑證 將 (.pfx檔案) 匯入本機電腦.個人.憑證 有2個方法可以將憑證匯入 iis 中, 請使用第1個方法, 不要使用容易出錯的第2個方法. ○ 方法1: 以系統管理員執行 certlm 匯入伺服器憑證(.pfx檔案), 不要用 IIS 管理員中匯入: 選擇 憑證-本機電腦.個人.憑證, 滑鼠右鍵選單所有工作.匯入.存放位置本機電腦. 下一步.選擇(.pfx檔案).輸入密碼.注意要勾選 將這個金鑰設成可匯出。這樣您可以在以後備份或傳輸你的金鑰. 下一步.憑證存放區選擇個人.完成 執行成功後, 可看到例如 Let's encrypt 的三張憑證 存放在 (本機電腦.個人.憑證)中: 1. ISRG Root X1 (全部) 2. R3 (伺服器驗證, 用戶端驗證) 3. *.011.idv.tw (伺服器驗證, 用戶端驗證) 這個步驟等於在 IIS 管理員中匯入伺服器憑證. 以上步驟完成後, 就可以在 IIS 管理員.伺服器憑證中看到 *.011.idv.tw (伺服器憑證). 這個步驟等於(IIS 管理員.伺服器憑證)匯入憑證. ○ 方法2: 若要從 IIS 管理員中匯入伺服器憑證, 步驟如下: (這個方式容易出錯, 不建議使用) IIS伺服器匯入憑證.IIS.主機名稱.伺服器憑證.匯入.選擇.pfx憑證檔案.輸入密碼.選取憑證儲存區=個人. 注意不要勾選允許匯出此憑證(預設是勾選, 但是別勾選!) 建議不要使用本步驟的方式匯入伺服器憑證, 而是以步驟1的方式, 匯入伺服器憑證. 因為 IIS 管理員.伺服器憑證匯入的過程中, 有一個(預設為勾選允許會出此憑證)的選項, 測試結果是不能勾選, 否則會導致後續繫結憑證時, 錯誤到令人崩潰不知道錯在哪裡? □ 網站繫結憑證 IIS.選擇需要繫結的網站.編輯繫結.新增.類型=https.填入連接埠(一般是443).SSL憑證=選擇已匯入的憑證.關閉. 若有問題的話, 請看前面提醒應該使用的方法, 令人崩潰的錯誤在哪裡? □ 測試啟用憑證 瀏覽器開啟測試網址 若繫結連接埠, 類型http為80, 類型https為443, 則測試網址為 例如: http://www.011.idv.tw https://www.011.idv.tw 否則測試網址為 例如: http://www.011.idv.tw:(連接埠) https://www.011.idv.tw:(連接埠) 若測試成功的話, 類型 https 應可正常顯示安全鎖頭, 不會出現類型 http 的不安全驚嘆號, 並且可以同時使用 http, https 瀏覽網站. 若有問題的話, 請看前面提醒應該使用的方法, 令人崩潰的錯誤在哪裡? 若要讓 http 瀏覽自動轉成 https, 則請參考(設定 IIS 網站瀏覽 http 時自動轉成為 https). □ tocheck: 這樣是匯入到哪 ???? Windows 請以「系統管理員身分」執行以下命令,即可將憑證匯入到 Windows 的憑證儲存區之中: certutil -addstore -f "ROOT" server.crt #### 2022-06-21, 設定 IIS 網站瀏覽 http 時自動轉成為 https. □ 方法1: 會自動將http 路徑對應成 https 路徑. 建議使用方法2. 適用於原本為 http 舊網站, 啟用為新的 https 網站. 設定 web.config 如下: 本方法筆者未測試過, 因為方法1就夠用了! 以下為參考資料: 先安裝 url-rewrite: https://www.iis.net/downloads/microsoft/url-rewrite 注意要選對版本: 中英文、x86, x64... IIS 和 ASP.NET Core 將網站強制導向HTTPS並且使用HTTP狀態碼為301 https://talllkai.coderbridge.io/2021/05/03/HTTPS301/?utm_source=coderbridge-com&utm_medium=indie_related_post_title&utm_campaign=openCV%20%E4%BB%8B%E7%B4%B9%E8%88%87%E5%B0%8E%E5%85%A5%E5%AF%A6%E4%BD%9C_IIS%20%E5%92%8C%20ASP.NET%20Core%20%E5%B0%87%E7%B6%B2%E7%AB%99%E5%BC%B7%E5%88%B6%E5%B0%8E%E5%90%91HTTPS%E4%B8%A6%E4%B8%94%E4%BD%BF%E7%94%A8HTTP%E7%8B%80%E6%85%8B%E7%A2%BC%E7%82%BA301_@talllyes □ 方法2: 將 http 重新導向 https 首頁. 建議使用方法2. 設定 IIS(功能同設定 web.config) 1. IIS.選擇網站站台.SSL設定.勾選需要SSL.套用. 2. IIS.選擇網站站台.錯誤網頁.新增 403.4 錯誤訊息網頁.回應動作=(回應302重新導向), 並且輸入https:版的首頁(例如: https://www.011.idv.tw/) 或是設定 web.config 如下: 注意因上版新程式後, 會覆蓋掉 web.config. 因此重新上版程式後, 須注意 web.config 檔案中之 .403.4 設定須維持正確 #### 2019-11-11, IIS7 版本以上的應用程式集區, 預設不啟動支援32位元, 導致部屬網站後, 卻無法執行瀏覽網頁. 例外狀況詳細資訊: System.BadImageFormatException: 無法載入檔案或組件 'WebForm1' 或其相依性的其中之一。 試圖載入格式錯誤的程式。 ref: https://dotblogs.com.tw/jshsshwa/2013/07/23/112092 Windows 10 的 iis 版本為 Internet Information Service (Version 10.0.18362.1) IIS7 版本以上的應用程式集區, 預設不啟動支援32位元, 導致部屬網站後, 卻無法執行瀏覽網頁, 錯誤訊息為: 例外狀況詳細資訊: System.BadImageFormatException: 無法載入檔案或組件 'WebForm1' 或其相依性的其中之一。 試圖載入格式錯誤的程式。 若無法將現有dll 編譯為 64位元版本, 則可開啟 (IIS 啟用 32 位元應用程式) 解決. 開啟方式: IIS.應用程式集區.[你的網站].進階設定.啟用32位元應用程式.