Sitecore ECM:无法为 SSL/TLS 安全通道建立信任关系
Sitecore ECM: Could not establish trust relationship for the SSL/TLS secure channel
每当我尝试在 Email Campaign Manager 中进行测试连接时,我都会收到以下错误。
The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
日志中记录的错误如下
ManagedPoolThread #11 11:41:08 INFO Job started: VerifyMTA
ManagedPoolThread #11 11:41:08 WARN EmailCampaign: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Exception: System.Net.WebException
Message: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Source: System.Web.Services
at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Sitecore.Modules.EmailCampaign.AppsService.AppsService.GetServerApplicationsByApplicationId(Credentials credentials, Guid applicationId)
at Sitecore.Modules.EmailCampaign.Core.Services.AppsServiceClient.IsApplicationPurchased(Guid applicationId)
at Sitecore.Modules.EmailCampaign.Core.MessageTransfer.EmailDeliveryClient.IsPurchased()
at Sitecore.Modules.EmailCampaign.Core.MessageTransfer.EmailDeliveryClient.GetSmtpConfiguration()
at Sitecore.Modules.EmailCampaign.SendingManager.GetSmtpSettings()
at Sitecore.Modules.EmailCampaign.Core.MessageTransfer.MtaChecker.GetSmtpSettings(StringBuilder report, String& error)
at Sitecore.Modules.EmailCampaign.Core.MessageTransfer.RemoteMtaChecker.GetSmtpSettings(StringBuilder report, String& error)
Nested Exception
Exception: System.Security.Authentication.AuthenticationException
Message: The remote certificate is invalid according to the validation procedure.
Source: System
at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
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.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
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.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
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.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Net.TlsStream.CallProcessAuthentication(Object state)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
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)
ManagedPoolThread #11 11:41:08 INFO Job ended: VerifyMTA (units processed: )
我在 Sitecore App Center 的“电子邮件传送”选项卡中的“连接测试”选项中也遇到了错误。
25和443端口号在服务器中开放,用于联系Sitecore应用中心和邮件服务器(默认Sitecore邮件服务器)。我可以
telnet apps.sitecore.net 443
而且效果很好。
我试过注销并重新登录;按照 some other thread in Whosebug 中的建议在 Sitecore appcenter 中。但我仍然收到此错误。
任何人都可以建议解决这个问题。提前致谢。
尝试注销并重新登录 Sitecore App Center。
另请参阅:ECM Error: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel
您的应用程序池 运行 是网络服务吗?当 IIS 工作进程无法访问 SSL/TSL 协商中使用的证书时,我看到了这个错误。
我们联系了 Sitecore 并得到了以下响应以解决问题
重新登录(注销并重新登录)App Center Sitecore 应用程序(使系统更新身份验证信息)
确保 Sitecore App Center 中的 'Email Delivery' 应用程序旁边有绿色 'Running' 状态图标(表示已为当前帐户购买该服务)
根据“ECM 1.3.3 管理员和开发人员指南”文档第 3.1.5 章中的建议验证 ECM(电子邮件活动管理器)和 MTA(消息传输代理)之间的连接SDN 在 http://sdn.sitecore.net/Products/ECM/ECM%201,-d-,3/Documentation.aspx
可用
如果需要额外的故障排除,请将 'Sitecore.EmailCampaign.config' 文件(在“/App_Config/Include”文件夹中)的 'Debug' 设置设置为 'true' .该设置指定是否启用 ECM 的 Sitecore 日志文件中的详细日志记录。
这可能与无效或过期的 SSL 证书有关,或者因为证书与站点的 url(或基础 URL 设置)不匹配。
请检查这些文章是否可以帮助您:
Could not establish trust relationship for SSL/TLS secure channel -- SOAP
请检查 GlobalSettings.RendererUrl 设置的值是否等于您当前的站点主机名。为此,您可以在布局中使用以下代码:
protected override void OnLoad(EventArgs e)
{
Response.Write("GlobalSettings.RendererUrl: "+Sitecore.Modules.EmailCampaign.GlobalSettings.RendererUrl);
base.OnLoad(e);
}
此外,请检查您的网站是否允许匿名访问或 ECM 请求是否被防火墙阻止。
临时修复
作为临时修复,您可以添加一个回调委托,每当 Sitecore 尝试验证远程服务器证书时,该回调委托始终 returns 为真。您可以通过在网站文件夹中的 Sitecore 提供的 Global.asax 文件中添加一个函数来完成此操作,如 here 所述。如果这解决了问题,则确认这是服务器证书问题。这可能会导致一些安全问题,所以不要将其用作永久解决方案。
每当我尝试在 Email Campaign Manager 中进行测试连接时,我都会收到以下错误。
The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
日志中记录的错误如下
ManagedPoolThread #11 11:41:08 INFO Job started: VerifyMTA
ManagedPoolThread #11 11:41:08 WARN EmailCampaign: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Exception: System.Net.WebException
Message: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Source: System.Web.Services
at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Sitecore.Modules.EmailCampaign.AppsService.AppsService.GetServerApplicationsByApplicationId(Credentials credentials, Guid applicationId)
at Sitecore.Modules.EmailCampaign.Core.Services.AppsServiceClient.IsApplicationPurchased(Guid applicationId)
at Sitecore.Modules.EmailCampaign.Core.MessageTransfer.EmailDeliveryClient.IsPurchased()
at Sitecore.Modules.EmailCampaign.Core.MessageTransfer.EmailDeliveryClient.GetSmtpConfiguration()
at Sitecore.Modules.EmailCampaign.SendingManager.GetSmtpSettings()
at Sitecore.Modules.EmailCampaign.Core.MessageTransfer.MtaChecker.GetSmtpSettings(StringBuilder report, String& error)
at Sitecore.Modules.EmailCampaign.Core.MessageTransfer.RemoteMtaChecker.GetSmtpSettings(StringBuilder report, String& error)
Nested Exception
Exception: System.Security.Authentication.AuthenticationException
Message: The remote certificate is invalid according to the validation procedure.
Source: System
at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
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.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
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.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
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.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Net.TlsStream.CallProcessAuthentication(Object state)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
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)
ManagedPoolThread #11 11:41:08 INFO Job ended: VerifyMTA (units processed: )
我在 Sitecore App Center 的“电子邮件传送”选项卡中的“连接测试”选项中也遇到了错误。
25和443端口号在服务器中开放,用于联系Sitecore应用中心和邮件服务器(默认Sitecore邮件服务器)。我可以
telnet apps.sitecore.net 443
而且效果很好。
我试过注销并重新登录;按照 some other thread in Whosebug 中的建议在 Sitecore appcenter 中。但我仍然收到此错误。
任何人都可以建议解决这个问题。提前致谢。
尝试注销并重新登录 Sitecore App Center。
另请参阅:ECM Error: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel
您的应用程序池 运行 是网络服务吗?当 IIS 工作进程无法访问 SSL/TSL 协商中使用的证书时,我看到了这个错误。
我们联系了 Sitecore 并得到了以下响应以解决问题
重新登录(注销并重新登录)App Center Sitecore 应用程序(使系统更新身份验证信息)
确保 Sitecore App Center 中的 'Email Delivery' 应用程序旁边有绿色 'Running' 状态图标(表示已为当前帐户购买该服务)
根据“ECM 1.3.3 管理员和开发人员指南”文档第 3.1.5 章中的建议验证 ECM(电子邮件活动管理器)和 MTA(消息传输代理)之间的连接SDN 在 http://sdn.sitecore.net/Products/ECM/ECM%201,-d-,3/Documentation.aspx
可用
如果需要额外的故障排除,请将 'Sitecore.EmailCampaign.config' 文件(在“/App_Config/Include”文件夹中)的 'Debug' 设置设置为 'true' .该设置指定是否启用 ECM 的 Sitecore 日志文件中的详细日志记录。
这可能与无效或过期的 SSL 证书有关,或者因为证书与站点的 url(或基础 URL 设置)不匹配。 请检查这些文章是否可以帮助您:
Could not establish trust relationship for SSL/TLS secure channel -- SOAP
请检查 GlobalSettings.RendererUrl 设置的值是否等于您当前的站点主机名。为此,您可以在布局中使用以下代码:
protected override void OnLoad(EventArgs e) {
Response.Write("GlobalSettings.RendererUrl: "+Sitecore.Modules.EmailCampaign.GlobalSettings.RendererUrl); base.OnLoad(e); }
此外,请检查您的网站是否允许匿名访问或 ECM 请求是否被防火墙阻止。
临时修复
作为临时修复,您可以添加一个回调委托,每当 Sitecore 尝试验证远程服务器证书时,该回调委托始终 returns 为真。您可以通过在网站文件夹中的 Sitecore 提供的 Global.asax 文件中添加一个函数来完成此操作,如 here 所述。如果这解决了问题,则确认这是服务器证书问题。这可能会导致一些安全问题,所以不要将其用作永久解决方案。