Sitecore ECM: не удалось установить доверительные отношения для безопасного канала SSL / TLS

Каждый раз, когда я пытаюсь выполнить тестовое соединение в 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.

Номера портов 25 и 443 открыты на сервере для связи с центром приложений Sitecore и почтовым сервером (почтовый сервер Sitecore по умолчанию). я могу сделать

telnet apps.sitecore.net 443

и он отлично работает.

Я пробовал выйти и снова войти в систему; в центре приложений Sitecore, как предлагается в какой-то другой поток в stackoverflow. Но все же я получаю эту ошибку.

Может ли кто-нибудь предложить решение этой проблемы. Заранее спасибо.


person Sachin B. R.    schedule 24.02.2015    source источник
comment
Это когда-нибудь работало или это новая установка? Вы упомянули, что порты открыты, но существуют ли другие правила брандмауэра, которые могут блокировать соединение?   -  person Craig Taylor    schedule 25.02.2015
comment
@CraigTaylor У нас была такая же проблема с нашим тестовым сервером, и когда мы открыли порты, он начал работать, но не в случае этого сервера. Когда вы говорите о блокировке брандмауэра, достаточно просто его открыть, верно?   -  person Sachin B. R.    schedule 25.02.2015
comment
Я знаю, что разные брандмауэры работают по-разному, но я считаю, что помимо открытия портов, все еще могут существовать правила, препятствующие обмену данными с SAC (возможно, маловероятный сценарий). Можете ли вы пропинговать SAC с этого сервера?   -  person Craig Taylor    schedule 02.03.2015
comment
@CraigTaylor Я не могу проверить связь с SAC на новом сервере, а также на тестовом сервере, на котором он работает. Однако я могу использовать telnet apps.sitecore.net 443 на обоих серверах, и он работает. Я обновил вопрос этой информацией.   -  person Sachin B. R.    schedule 03.03.2015
comment
@SachinBR Извините, но предложения у меня заканчиваются. Обращались ли вы по этому поводу в службу поддержки Sitecore? Как правило, они очень быстро помогают решить подобные проблемы с подключением.   -  person Craig Taylor    schedule 03.03.2015
comment
@CraigTaylor Спасибо за ваши предложения. Я свяжусь со службой поддержки Sitecore и добавлю в эту ветку решение, которое они предоставляют.   -  person Sachin B. R.    schedule 04.03.2015
comment
@CraigTaylor Мы получили ответ от sitecore. Я добавил их ответ.   -  person Sachin B. R.    schedule 13.04.2015


Ответы (3)


Мы связались с Sitecore и получили следующий ответ для устранения проблемы.

  • Повторный вход (выход из системы и повторный вход) в приложение App Center Sitecore (что заставляет систему обновлять информацию аутентификации)

  • Убедитесь, что рядом с приложением "Доставка по электронной почте" в Центре приложений Sitecore есть зеленый значок статуса "Выполняется" (это означает, что услуга была приобретена для текущей учетной записи).

  • Проверьте соединение между ECM (E-mail Campaign Manager) и MTA (Message Transfer Agent) в соответствии с рекомендациями из главы 3.1.5 документа «ECM 1.3.3 Administrator's and Developer's Guide» по SDN, доступного по адресу http://sdn.sitecore.net/Products/ECM/ECM%201,-d-,3/Documentation.aspx

  • Если требуется дополнительное устранение неполадок, установите для параметра «Отладка» в файле «Sitecore.EmailCampaign.config» (в папке «/ App_Config / Include») значение «true». Этот параметр указывает, включено ли подробное ведение журнала в файлы журнала Sitecore для ECM.

  • Это может быть связано с недействительным сертификатом SSL или с истекшим сроком действия, либо с несоответствием между сертификатом и URL-адресом сайта (или настройкой базового URL-адреса). Пожалуйста, проверьте, могут ли эти статьи вам помочь:

    Не удалось установить доверительные отношения для безопасности SSL / TLS. канал - SOAP

    http://www.outsystems.com/NetworkForums/ViewTopic.aspx?Topic=Web-Services:-Could-not-establish-trust-relationship-for-the-SSL/TLS

  • Please check that the value of GlobalSettings.RendererUrl setting is equal to your current site hostname. You can use the following code in your layout for this:

    
        protected override void OnLoad(EventArgs e)
        {
    Response.Write("GlobalSettings.RendererUrl: "+Sitecore.Modules.EmailCampaign.GlobalSettings.RendererUrl); base.OnLoad(e); }

  • Кроме того, убедитесь, что анонимный доступ разрешен для вашего веб-сайта или запросы ECM не блокируются брандмауэром.

Временное исправление
В качестве временного исправления вы можете добавить делегата обратного вызова, который всегда возвращает истину всякий раз, когда Sitecore пытается проверить сертификат удаленного сервера. Вы можете сделать это, добавив функцию в файл Global.asax, предоставляемый Sitecore, в папку веб-сайта, как описано здесь. Если это решит проблему, значит, это проблема с сертификатом сервера. Это может вызвать проблемы с безопасностью, поэтому не используйте это как постоянное решение.

person Sachin B. R.    schedule 13.04.2015


Ваш пул приложений работает как сетевая служба? Я видел эту ошибку, когда рабочий процесс IIS не может получить доступ к сертификатам, используемым в согласовании SSL / TSL.

person mikaelnet    schedule 26.02.2015