在IIS 7中,我爲一個站點創建了一個https綁定,並且我想要求https的客戶端證書並仍保留我的http端點。需要IIS中的客戶端證書而不需要SSL
也就是說,我希望我的https端點需要客戶端證書,而不需要全面使用SSL並禁止訪問我的http端點(通過SSL Settings中的「require SSL」)。這可能嗎?
在IIS 7中,我爲一個站點創建了一個https綁定,並且我想要求https的客戶端證書並仍保留我的http端點。需要IIS中的客戶端證書而不需要SSL
也就是說,我希望我的https端點需要客戶端證書,而不需要全面使用SSL並禁止訪問我的http端點(通過SSL Settings中的「require SSL」)。這可能嗎?
客戶端證書通常用於雙向SSL,因此不僅僅是服務器,客戶端也使用私鑰對流量進行加密。
如果您不想強制實施https,那麼您可以嘗試接受客戶端證書(請參閱SSL設置),然後在您的應用程序中實施證書驗證。 MSDN上
見Request.ClientCertificate更多細節
if (HttpContext.Current.Request.IsSecureConnection)
{
// it's SSL, so check the client cert
bool authorized = IsClientCertAuthorized(HttpContext.Current.Request.ClientCertificate)
}
然後根據需要實現該方法。
注意:我沒有測試過,所以如果您嘗試過,請發表評論。
感謝您的回覆。我沒有在代碼中工作,我正在使用IIS管理器UI。有沒有辦法通過UI來做到這一點? – user1325378
如果有人可以將它變成一個託管的iis模塊,那麼你可以將該模塊添加到管道中,並返回一個403.7-如果沒有通過ssl的客戶端證書,則返回一個所需的客戶端證書 – Csaba
客戶端無法使用僅使用傳輸層安全性的HTTP(而不是HTTPS)提供證書。 – akton
我想要求客戶端證書,而不需要全面的SSL(我想保留http端點,但需要https的客戶端證書) – user1325378