1

We have a secure Discovery service using https and are using Tridion Sites 9. Accessing it from the browser works but when accessing it from the TopologyManager Add-TtmCdEnvironment, we get the following error.

Could not create SSL/TLS secure channel. The request was aborted: Could not create SSL/TLS secure channel.

We have not yet followed the instructions for Securing the microservice with SSL. I assume this would solve it. But, why would the request to the MicroServices work in the Browser but not via the PowerShell command?

StackTrace:

Log Name: Tridion Source: Tridion TopologyManager Date:
3/19/2019 2:24:30 PM Event ID: 100 Task Category: None Level:
Error Keywords: Classic User: N/A Computer:
CPU_NAME Description: Unable to save item of type 'CdEnvironmentData' with id 'DevStaging'. One or more errors occurred. An error occurred while communicating with CD Discovery Service 'https://tridion-dev.net:8082/discovery.svc' in CD Environment 'DevStaging'. The request was aborted: Could not create SSL/TLS secure channel. The request was aborted: Could not create SSL/TLS secure channel.

Component: Tridion.TopologyManager.Service Errorcode: 12 User: NT AUTHORITY\NETWORK SERVICE

StackTrace Information Details: at System.Net.HttpWebRequest.GetResponse() at Microsoft.OData.Client.HttpWebRequestMessage.GetResponse() at Microsoft.OData.Client.HttpWebRequestMessage.GetResponse() at Microsoft.OData.Client.DataServiceContext.GetResponseHelper(ODataRequestMessageWrapper request, IAsyncResult asyncResult, Boolean handleWebException) at Microsoft.OData.Client.QueryResult.ExecuteQuery() at Microsoft.OData.Client.DataServiceRequest.Execute[TElement](DataServiceContext context, QueryComponents queryComponents) at Microsoft.OData.Client.DataServiceQuery1.GetEnumerator() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable1 source)
at Microsoft.OData.Client.DataServiceQueryProvider.ReturnSingleton[TElement](Expression expression) at Tridion.TopologyManager.Connectors.CdDiscoveryServiceClient.ExecuteRequestWithRetry(Action action, String cdEnvironmentId) at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Tridion.TopologyManager.Connectors.CdDiscoveryServiceClient.d__0.MoveNext() at Tridion.TopologyManager.Connectors.CdDiscoveryServiceClient.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Tridion.TopologyManager.Connectors.CdConnector.d__11.MoveNext() at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at Tridion.TopologyManager.Connectors.CdConnector.OnCreated(TopologyItemData item, TtmOperationContext context) at Tridion.TopologyManager.Connectors.CdConnector.OnCreated(TopologyItemData item, TtmOperationContext context) at Tridion.TopologyManager.CrossSystemBusinessLogicRegistry.OnCreated(TopologyItemData item, TtmOperationContext context) at Tridion.TopologyManager.TopologyItem1.Create(T item, TtmOperationContext context) at Tridion.TopologyManager.Service.Controllers.TopologyItemController1.Create(T entity) at Tridion.TopologyManager.Service.Controllers.TopologyItemController1.Post(T entity) at lambda_method(Closure , Object , Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_1.<GetExecutor>b__3(Object instance, Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary2 arguments, CancellationToken cancellationToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ApiControllerActionInvoker.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Filters.AuthorizationFilterAttribute.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ExceptionFilterResult.d__6.MoveNext()

  • Is there any error in the discovery service on cd_core.log? can you try to validate in the postman for this URL localhost:8082/discovery.svc/Environment? for me seems to be a keystore file, not setup correctly – Velmurugan Mar 18 at 20:52
  • I have seen that error when SSL is not setup correctly. You can refer some useful responses from tridion.stackexchange.com/questions/13736/…. Suggest that you write up a small powershell in your CM (where TopMan is installed), and validate connections and capabilities. – Shiva Mar 18 at 21:14
  • I have seen a similar error when the server (or NLB) enforces the use of TLS 1.2 (lower versions of SSL/TLS are considered insecure nowadays). – Rick Pannekoek Mar 19 at 18:30
  • We still get the sameWe have setup all microservices with https and also configured OAuth and still no luck. How does the PowerShell Add-Ttm command send along the cert to the discovery_service or token service? Still getting stuck on Add-TtmCdEnvironment... – robrtc Mar 20 at 18:14
  • The TopologyManager seems to have a CdConnector class that connects to the Content Delivery environment...Could it be that it is not aware or passing in the certificate or ssl info? – robrtc Mar 20 at 19:24
2

If the customer environment only supports TLS 1.1 and TLS 1.2. Need to forced the .Net framework to use these versions by changing the below registry keys on CM server.

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001

  • Thanks Venu! This did it! Apparently TLS defaults to 1.0 for Windows machines (and PowerShell), and it needed TLS 1.2.... – robrtc Mar 21 at 15:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.