字體:小 中 大 |
|
|
|
| 2025/05/09 10:34:58瀏覽102|回應0|推薦0 | |
這是在某一天開發網站的社群帳號登入功能時發生的事情,因為碰到要介接的Http服務要求redirect回網站時須採用 Https ,因此在開發階段需啟用SSL,即Visual Studio須在debug階段就啟用SSL。 往常開發網站或API時,只需要考慮Http即可,因為Https通常是直接設定在IIS上即可,故開發過程中通常是可以忽略的,相對較少的情境才會需要在debug開發時就需要Https;要使用Https也不難,就是要知道設定在哪就好。 因為當時電腦環境更換使用新的windows 11、是以才剛重灌過,除此之外,Visual Studio也取代過去的2019、而改使用新版的Visual Studio 2022(版本:17.5.4),開發專案也使用.net 6、而非習慣的.net Framework 4.5~4.7等。 是以剛開始打開專案屬性時,由於介面更換花了不少時間尋找設定所在位置,在此給大家一個建議:直接搜尋關鍵字「debug」或「url」(搜尋關鍵字Https或SSL是找不到的),而後即可在「偵錯」的區塊中找到設定「開啟 debug 啟動設定檔UI」。
Visual Studio會跳出設定視窗,可在IIS Express的設定檔中找到「使用SSL」設定,將其勾選後,「應用程式SSL URL」就會出現對應的Https網址,且該網址無法修改。
另外設定下方的「啟用匿名驗證」與「啟用Windows驗證」兩者,需勾選其中之一,若兩者皆不勾選,在啟動IIS Express進行偵錯時、Visual Studio將會跳出錯誤警告視窗。
設定完後,別忘了在啟動偵錯時選擇使用「IIS Express」,畢竟剛剛調整設定的是IIS Express的啟動設定檔。
於是我設定完成後就可以順利使用Https了嗎?錯! 也不知道是否是因為電腦才剛重灌、導致過去開發時新增的localhost憑證都不在了,所以啟用SSL後碰到的就是Https不安全的瀏覽器畫面。
舊版的Visual Studio若要啟用SSL、使用Https進行偵錯,會跳出視窗詢問是否自動新增憑證,然而不知道是否是因為我專案是Http、開發到中途才啟用SSL的原因,一開始沒有主動跳出該視窗;不過也沒關係,錯誤畫面很明顯是憑證問題,然後重新創建localhost憑證即可。 由於後續打算透過指令直接重建localhost憑證,是以重新創建憑證前,可以考慮先把舊有的憑證先行清除,包含使用者憑證:個人\憑證、受信任的根憑證授權單位\憑證,以及本機電腦憑證:個人\憑證、受信任的根憑證授權單位\憑證,若有看到localhost的憑證皆可先刪除。 ※ 當然未必每個地方都有憑證,以我的當時經歷來說,就只有一個目前使用者\個人\憑證存在localhost憑證。
下方提供指令進行創建localhost憑證(須使用系統管理員的權限執行):
追加補充:網路上也存在另一份指令,是針對IIS Express的port 44300至44399 範圍,進行重置憑證,如下: $cert = New-SelfSignedCertificate -DnsName "localhost", "localhost" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(5) For ($i=44300; $i -le 44399; $i++) { For ($i=44300; $i -le 44399; $i++) { $StoreScope = LocalMachine $Store = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Store -ArgumentList $StoreName, $StoreScope $Store.Close() Reference: |
|
| ( 知識學習|其他 ) |




















