網友 Lauyea提問,照著 範例教學:使用 ASP.NET MVC 打造 WebAPI 服務 的範例程式實作,卻卡在 PostMan 測試沒反應。
發問有附了詳細圖片,也依循建議加了 HomeController Index() 做過對照,不過我江湖經驗不足,沒在第一時間看出端倪(其實答案早在圖片中),最後下載 Lauyea 放上 Github 的專案重現錯誤後才找出問題,也學到一些東西,特筆記備忘。
狀況為按 F5 測試網站沒問題,但 PostMan 發 Request 時卡住:
我起初糾結在錯誤訊息裡的 Could not get any response 跟 The server couldn't send a response,想說是 IIS Express 因某個神奇原因暴斃沒反應。但真正的關鍵在:URL 是 https://localhost:44335,跟 Self-signed SSL certificate are being blocked.
IIS Express 跑 HTTPS 時使用自行簽發的 SSL 憑證,這種非第三方公正 CA 發出的憑證對 PostMan 來說是無效的,認定有資安疑慮而禁止連線。
要解決這個問題,有兩個方向。如錯誤訊息提示,PostMan 有設定可以停用 SSL 憑證檢核,將 IIS Express 的自簽 SSL 憑證視為有效進行連線。(風險是測試其他網站若遇到中間人攻擊會無法察覺,故建議測完恢復啟用較安全)
另一個做法是停用 IIS Express 的 HTTPS 連線,改回一般 http:// :
最後有個疑點,為何 Chrome / IE 測試不會遇到 SSL 憑證無效問題? 原因是 IIS Express Development Cerficate 這張憑證有被加入 Windows 的受信任根 CA 清單,IE 跟 Chrome 依此判定憑證合法,而 PostMan 未採用它做為憑證檢核依據。
使用 Firefox 連線 IIS Express HTTPS 有憑證無效警示,也是類似的原因。(Firefox 有自己的信任 CA 清單,可藉由將 IIS Express Development Cerficate 加入受信任清單解決問題)
Tips of resolving the issue that PostMan can't connect to IIS Expresss due to self-signed SSL certificate.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
程序员修炼之道(影印版)
Andrew Hunt、David Thomas / 中国电力出版社 / 2003-8-1 / 39.00
本书直击编程陈地,穿过了软件开发中日益增长的规范和技术藩篱,对核心过程进行了审视——即根据需求,创建用户乐于接受的、可工作和易维护的代码。本书包含的内容从个人责任到职业发展,直至保持代码灵活和易于改编重用的架构技术。从本书中将学到防止软件变质、消除复制知识的陷阱、编写灵活、动态和易适应的代码、避免出现相同的设计、用契约、断言和异常对代码进行防护等内容。一起来看看 《程序员修炼之道(影印版)》 这本书的介绍吧!