0

我的客戶希望使用基於SiteMinder聲明的STS Web服務代理驗證SharePoint Web應用程序。當Web應用程序啓動並選擇身份驗證提供程序時,Web應用程序將重定向到登錄頁面,並通過正確的憑據將其重定向回該站點。 正在發生的事情是SharePoint Web應用程序返回的正確憑據發生以下錯誤:SharePoint 2010錯誤無法驗證證書的簽名

任何線索可能是什麼原因?如果需要更多信息,我很樂意提供幫助。

NotSignatureValid:無法驗證證書的簽名。 1048576:未知錯誤。

異常詳細信息:

System.IdentityModel.Tokens.SecurityTokenValidationException:NotSignatureValid:該證書的簽名無法驗證。 1048576:未知錯誤。

源錯誤:

在當前web請求的執行過程中生成未處理的異常。關於異常的來源和位置的信息可以使用下面的異常堆棧跟蹤來標識。

堆棧跟蹤:

[SecurityTokenValidationException:NotSignatureValid:該證書的簽名無法驗證。 1048576:未知錯誤] Microsoft.SharePoint.SPImmutableCertificateValidator.Validate(X509Certificate2證書)181 Microsoft.SharePoint.SPCertificateValidator.Validate(X509Certificate2證書)260 Microsoft.IdentityModel.Tokens.Saml11.Saml11SecurityTokenHandler.ValidateToken(SecurityToken令牌)+520

[SecurityTokenValidationException:ID4257:X.509證書'E = [email protected],CN = certName,OU = WHQ,O = CSC,L = Chantilly,S = Virigina,C = US'驗證失敗的令牌處理程序。] Microsoft.IdentityModel.Tokens.Saml11.Saml11SecurityTokenHandler.ValidateToken(SecurityToken令牌)+ 1358733 Microsoft.IdentityModel.Web.TokenReceiver.AuthenticateToken(SecurityToken token,布爾ensureBearerToken,字符串endpointUri)118 Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.SignInWithResponseMessage(HttpRequest的請求)461 Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.OnAuthenticateRequest(對象發件人,EventArgs參數)1099702 System.Web.SyncEventExecutionStep。 System.Web.HttpApplication.IExecutionStep.Execute()+ 80 System.Web.HttpApplication.ExecuteStep(IExecutionStep一步,布爾& completedSynchronously)+171

+1

要排除與微軟[補丁](HTTP可能的衝突:// blogs.technet.com/b/rmilne/archive/2012/09/03/important-upcoming-certificate-changes.aspx),您在證書中使用的密鑰大小是多少? – gtrig 2013-05-14 17:34:36

+0

嗨@gtrig似乎是這個問題。證書的密鑰大小爲512,證書由客戶端提供。同樣的解決方案適用於Windows 7環境,但不適用於Windows Server 2008 R2環境。任何解決方法(註冊編輯或等),使這個證書的工作?感謝您的支持 ! – 2013-05-15 06:45:35

+1

嗨@Randy,「正確的」解決方案是創建一個至少使用最小密鑰大小1024(儘管推薦2048)的新證書。如果事情在Win 7環境中工作,可能是因爲該補丁程序尚未應用。如果您絕對不能在此時重新創建證書,請在[MS支持頁面](http://support.microsoft.com/kb/2661254)上修改註冊表。它只提到贏8和Windows Server 2012,所以它可能不適合你的情況。它帶來的警告是它不是一個長期的安全解決方案。 – gtrig 2013-05-15 16:54:14

回答

1

解決方案的時間!

特別感謝@gtrig,讓我擺脫錯誤背後的真正問題。

爲什麼錯誤

錯誤原因是增加了限制證書驗證微軟安全補丁(KB2661254)的結果。此修補程序要求證書RSA密鑰大於或等於1024位。給定的siteminder.cer包含一個512位的RSA密鑰。以下鏈接將詳細解釋該問題。

http://blogs.technet.com/b/rmilne/archive/2012/09/03/important-upcoming-certificate-changes.aspx

詳細的解決方案是在這裏。 http://support.microsoft.com/kb/2661254

但是對於我來說只有添加下面的註冊表鍵才能做到這一點。 HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\加密\ OID \編碼類型0 \ CertDllCreateCertificateChainEngine \配置

minRSAPubKeyBitLength:十進制512

若要將此註冊表修改打開命令提示符(確保用戶具有管理員權限,否則啓動命令提示管理員模式)和執行

的certutil -setreg鏈\ minRSAPubKeyBitLength 512

Howeve我建議從上面的鏈接深入閱讀整個解決方案,找到獨特的解決方案。

重要事項:這不是客戶端環境中的推薦方法,因爲這可能會危及服務器環境的安全。

推薦方案是擁有至少1024的最小密鑰大小創建一個新的證書(儘管2048推薦)