Article - CS324873

Connection fails for Windchill and ThingWorx Navigate with error "SSL_verify_client_post_handshake:extension not received" due to TLSv1.3 post handshake behavior change

Modified: 05-Aug-2025   


Applies To

  • Windchill PDMLink 11.0 M030-CPS19 to 12.1.2.4
  • Windchill Navigate (formerly ThingWorx Navigate) 8.5.0 to 10.0
  • ThingWorx Platform 8.5 to 10.0
  • Java 11
  • Apache 2.4.36+ with OpenSSL 1.1.1 (required for TLSv1.3 support)

Description

  • ptc-windchill-integration-connector shows a failed status in Monitoring within ThingWorx Composer
  • Logging into ThingWorx Composer  or Windchill Navigate presents a blank page after successful login
  • ptc-windchill-integration-connector ValidateConnection services fails with 403-Forbidden:
image.png
  • Connection fails for Windchill and Thingworx Navigate due to TLSv1.3 post handshake behavior change
  • Windchill with CAC PKI authentication, fails with error Error 403 Forbidden while performing the authentication
    • Error in Browser:
Forbidden - You don't have permission to access this resource. Reason: Cannot perform Post-Handshake Authentication
 
  • For Windchill after updating OpenSSL to 1.1.1x version, Windchill Apache [out of the box] will use TLSv1.3 in Chrome and Firefox browser; however Chrome and Firefox does not support post-handshake authentication
  • While executing GetEndpointDefinition Service in ThingWorx Navigate configured with Windchill authentication (Windchill as IdP) connection fails with Error in Browser in ThingWorx Navigate
    • This behavior occurs in all browsers
  • HTTP operation failed with status [403 - Forbidden] error occurs after changing ThingWorx Java from Oracle JDK to Amazon Corretto JDK (or vice versa)
  • Error while searching part in Thingworx Navigate as below -
We can’t complete your request due to connection problems
  • Error in <ThingworxStorage>/logs/ApplicationLog.log:
Unable to execute service GetEndpointDefinition on WindchillSwaggerConnectorThing: Your route exchange has failed.  HTTP operation failed with status [403 - Forbidden]
  • Error in <Windchill>/HTTPServer/logs/error.log:
[ssl:error] [pid 18516:tid 3016] [client <IP Address>:<Port>] AH10158: cannot perform post-handshake authentication
[ssl:error] [pid 18516:tid 3016] SSL Library Error: error:14268117:SSL routines:SSL_verify_client_post_handshake:extension not received
  • Error in <Windchill>/HTTPServer/logs/access.log:
<IP Address> - - [TIME/DATE] "GET /Windchill/sslClientAuth/servlet/rest/swagger.json?wt.effectiveUid=Administrator HTTP/1.1" 403 258 0
  • Error in <ThingworxNavigate>\IRLogs\IntegrationRuntime-<serial>.log:
[ClientProcessor-4] ERROR c.t.i.r.IntegrationEngine - Exchange process failed with exception thrown : Your route exchange has failed.  HTTP operation failed with status [403 - Forbidden]
java.lang.RuntimeException: Your route exchange has failed.  HTTP operation failed with status [403 - Forbidden]
                at com.twx.integration.route.exceptions.ExceptionHelper.convertToRuntimeException(ExceptionHelper.java:77)
                at com.twx.integration.route.IntegrationEngine.dispatchRoute(IntegrationEngine.java:159)
                at com.twx.integration.client.things.IntegrationRuntimeServer.Invoke(IntegrationRuntimeServer.java:72)
                at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.base/java.lang.reflect.Method.invoke(Method.java:566)
                at com.thingworx.common.processors.ReflectionProcessor.processService(ReflectionProcessor.java:261)
                at com.thingworx.communications.client.things.VirtualThing.invokeService(VirtualThing.java:1120)
                at com.thingworx.communications.client.things.VirtualThing.handleServiceRequest(VirtualThing.java:1028)
                at com.thingworx.communications.client.ConnectedThingClient.handleRequest(ConnectedThingClient.java:315)
                at com.thingworx.communications.client.processor.ClientProcessorTask.run(ClientProcessorTask.java:55)
                at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
                at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
                at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
                at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
                at java.base/java.lang.Thread.run(Thread.java:829)




 

This is a printer-friendly version of Article 324873 and may be out of date. For the latest version click CS324873