配置搜索设置时,MOSS 2007 SSL错误

时间:2020-03-05 19:00:11  来源:igfitidea点击:

当我们单击"共享服务提供者的搜索设置"时,收到以下错误消息:身份验证失败,因为远程方已关闭传输流。

这是一个新的服务器环境,具有两个Web前端,一个数据库服务器和一个索引服务器,均运行Windows 2003 x64.

是否有人对这可能与64位相关,或者可能引起错误的原因有任何想法。

以下是ULS的全部详细信息:

09/17/2008 16:30:34.13 w3wp.exe (0x0E84)                       0x030C  Search Server Common                MS Search Administration                      86x4       High       Configuring the Search Application web service Url to 'https://mushni-sptwb04q:56738/Shared%20Services%20Portal/Search/SearchAdmin.asmx'.           
  
  09/17/2008 16:30:34.14 w3wp.exe (0x0E84)                       0x030C  Search Server Common                MS Search Administration                      86ze       High       Exception caught in Search Admin web-service proxy (client). System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Authentication failed because the remote party has closed the transport stream.     at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)     at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)     at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)     at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)     at System.Threading.ExecutionContext.runTryCode(Object userData)     at System.Runtime.Co...  
  
  09/17/2008 16:30:34.14*               w3wp.exe (0x0E84)                       0x030C  Search Server Common                MS Search Administration                  86ze       High       ...mpilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)     at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)     at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)     at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)     at System.Net.ConnectStream.WriteHeaders(Boolean async)     --- End of inner exception stack trace ---     at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)     at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)     at System.Web.Services.Protocols.SoapHt...            
  
  09/17/2008 16:30:34.14*               w3wp.exe (0x0E84)                       0x030C  Search Server Common                MS Search Administration                  86ze       High       ...tpClientProtocol.Invoke(String methodName, Object[] parameters)     at Microsoft.Office.Server.Search.Administration.SearchWebServiceProxy.RunWithSoapExceptionHandling[T](String methodName, Object[] parameters)

解决方案

回答

可能是SSL问题。
请查看配置文件设置,访问同一SSP的"用户配置文件"设置时是否出现任何错误?

回答

我猜我们在索引服务器中发现了此异常,对吗?

我们是否可以从索引服务器浏览到" https:// mushni-sptwb04q:56738 / Shared%20Services%20Portal / Search / SearchAdmin.asmx"?

似乎在前端服务器上未正确配置SSL。这可能会解决问题:

  • 删除前端服务器的SSL证书
  • 从服务器场中删除索引服务器
  • 将搜索和索引角色移至前端之一
  • 将索引服务器加入服务器场
  • 将索引/搜索角色添加到索引服务器
  • 将SSL证书(我们可以使用SelfSSL生成它们)应用于两个前端

回答

我有同样的问题。 " Office Server Web Services"(此后称为OSWS)站点可通过我的应用程序服务器上的HTTP访问,但不能通过HTTPS访问。我尝试从何处访问HTTPS URL都没有关系,只是完全失败(请阅读:无HTTP错误代码)。

但是,我想出了一些更多的信息。将应用程序服务器加入服务器场后,它为OSWS提供了与服务器场其余部分中存在的站点标识符不同的站点标识符。
我尝试更改站点标识符,但这没有用。我还尝试安装IIS诊断工具包。这使我想到了将计算机加入服务器场时MOSS安装的证书。感兴趣的行是这一行:

#WARNING: AcquireCredentialsHandle failed with error -2146893043(0x8009030d)

不幸的是,看起来Microsoft已在证书中嵌入了一些信息,这些信息会阻止我使用SelfSSL或者类似工具。这是主题(已适当擦洗):

CN={hostname},L=951338967,OU=SharePoint,O=Microsoft

" L"参数与给定站点的原始(且不正确)站点标识符匹配,而不与与服务器场的其余部分匹配的站点标识符匹配。

下一步是查看是否可以生成看起来合适的东西,并使用winhttpcertcfg.exe安装它

回答

我们也在运行带有.net 3.5 sp1的x64 Windows和moss 2007,存在相同问题。我怀疑这是罪魁祸首。

回答

若要解决此问题,请下载IIS6资源工具包并运行以下命令
Selfssl / s:(Office Server Web Services站点的IIS ID)/ v:9999

干杯,

-伊凡

回答

请谨慎使用SelfSSL,最好使用Use SSLDiag。 SelfSSL有一个错误,如果我们使用它将证书分配给同一框中的多个站点,则只有最后一个站点可以工作。我们可以从命令行运行SslDiag,如下所示:

ssldiag / selfssl / V:999 / N:CN = <主机名> / S:<siteId>

使用配置数据库浏览器找到它的侧面。