2012-10-03 94 views
0

在IIS 7中,我爲一個站點創建了一個https綁定,並且我想要求https的客戶端證書並仍保留我的http端點。需要IIS中的客戶端證書而不需要SSL

也就是說,我希望我的https端點需要客戶端證書,而不需要全面使用SSL並禁止訪問我的http端點(通過SSL Settings中的「require SSL」)。這可能嗎?

+1

客戶端無法使用僅使用傳輸層安全性的HTTP(而不是HTTPS)提供證書。 – akton

+0

我想要求客戶端證書,而不需要全面的SSL(我想保留http端點,但需要https的客戶端證書) – user1325378

回答

1

客戶端證書通常用於雙向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) 
} 

然後根據需要實現該方法。

注意:我沒有測試過,所以如果您嘗試過,請發表評論。

+0

感謝您的回覆。我沒有在代碼中工作,我正在使用IIS管理器UI。有沒有辦法通過UI來做到這一點? – user1325378

+0

如果有人可以將它變成一個託管的iis模塊,那麼你可以將該模塊添加到管道中,並返回一個403.7-如果沒有通過ssl的客戶端證書,則返回一個所需的客戶端證書 – Csaba

相關問題