
對於家庭自動化項目,我創建了一個 API(用 ASP.NET 編寫,託管在 IIS 中)並編寫了我自己的 Android 應用程式來與此 API 進行通訊。為了防止人們存取此 API 中的特定端點,我想保護不應該公開的端點。有些將在我的統計儀表板中保持公開。
我擁有該應用程式的用戶端 PKI 證書,該證書是從官方和政府認可的組織購買的,並且包含 OCSP 回應程式 URL。當應用程式存取受保護的端點時,會包含此憑證。現在,最後一步是伺服器在傳入請求上驗證此憑證的有效性,我提出了以下可能的場景:
- 證書有效
- 憑證的 CA 層次結構無效(我是程式設計師,所以如果我刪掉了這句話,我深表歉意)
- 憑證已過期(我想 OCSP 回應者會回傳該憑證)
- 不含證書
IIS可以解決這個問題嗎?我只真正找到了與客戶端憑證無關的 OCSP 裝訂。基本上應該取消 TLS 握手,這樣 API 就無法存取。
我正在使用 HAProxy 將請求路由到網路中的正確伺服器。那如果IIS不可能的話,HAProxy能做到這一點嗎?
謝謝!
答案1
IIS 可以使用 OCSP 驗證客戶端憑證。據我所知,HAProxy 不會。最好的選擇是將客戶端憑證傳遞到 IIS 後端。
請注意,您僅使用 OCSP 或憑證撤銷清單 (CRL) 來檢查憑證的撤銷狀態,僅此而已。
因此,憑證的驗證仍然包括檢查從憑證到信任錨的鏈、檢查憑證是否已過期以及檢查憑證的金鑰使用是否正確;無論是否使用 OCSP(或 CRL)。