希望我能正確地問這個問題。
我有以下用例。我有一個我想在 https 上運行的應用程式,并讓用戶通過 x509。但是,我想將該身份驗證轉發到外部 LDAP,并且不讓 IIS 驗證/檢查證書。
如果我進入 IIS 并設定為接受/要求,我會收到 403 錯誤。如果我不需要,那么我永遠不會收到證書提示。
我的啟動類如下所示
public void Configuration(IAppBuilder app) {
app.UseClientCertificateAuthentication(new DefaultClientCertificateValidator());
}
}
}
然后我有
public class DefaultClientCertificateValidator : IClientCertificateValidator
{
public ClientCertificateValidationResult Validate(X509Certificate2 certificate)
{
Console.WriteLine($"Attempting to validate cert {certificate.SubjectName}");
// For now just return true
ClientCertificateValidationResult res = new ClientCertificateValidationResult(true);
return res;
}
}
如果我沒有傳遞證書,它會沿著拋出錯誤的路徑前進,因為它找不到證書。但是,如果我嘗試發送證書,則會收到以下服務器錯誤
403 - 禁止:訪問被拒絕。您無權使用您提供的憑據查看此目錄或頁面。
在 IIS 中我需要做些什么來基本上說“獲取證書,將其轉發但不對其進行身份驗證?”
uj5u.com熱心網友回復:
看起來答案有點“奇怪”。對于 IIS,您需要執行以下操作
netsh http show sslcert
這將為您提供 ssl 證書
然后復制此資訊,稍后您將需要它。
然后執行以下操作
netsh http delete sslcert ipport=YOUR_HOST:YOUR_PORT
然后運行以下
http add sslcert ipport=YOUR_PORT:YOUR_HOST certhash=[FROM THE FILE EARLIER] appid={[FROM THE FILE EARLIER]} certstorename=MY verifyclientcertrevocation=enable VerifyRevocationWithCachedClientCertOnly=disable UsageCheck=Enable clientcertnegotiation=enable
通過將該位翻轉為啟用,它允許驗證下游的 X509
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/406913.html
標籤:
