Error while running opcua gateway locally

I want to run the opcua ua gateway locally on my Windows machine, I am behind a corporate firewall Zscaler which might be causing the issue
I am following the article Simple OPCUA Device Integration - Knowledge base / Blog - Cumulocity IoT - Software AG Tech Community & Forums
when I ran the command
java -jar opcua-device-gateway-1014.0.408-SNAPSHOT.jar --spring.profiles.active=default,development
I am getting below error

Error message:
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439) at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306) at java.base/sun.security.validator.Validator.validate(Validator.java:264) at java.base/sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:313) at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:222) at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:129) at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1341) ... 47 common frames omitted Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297) at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434) ... 53 common frames omitted

any suggestions how to tackle it I have a signed certificate available with me

Hello Rushikesh,

you are using an older snapshot version of the OPC UA Gateway, could you please try a new released version: Index of /examples/opc-ua/

If this problem still exists, could you please share the complete log. This would help me to investigate why the gateway has problems with certificate.

Best regards,
Alex



Alexander Pester

Hii I am getting below output when I ran the program using released version: Index of /examples/opc-ua/

2023-11-16 12:19:10.656  INFO 100986 --- [   scheduler-11] c.c.o.c.g.m.HttpPostQueue                : Queue buffer size: 0/25000
2023-11-16 12:19:13.557  INFO 100986 --- [   scheduler-10] c.c.o.c.g.v.ValueMapManagerService       : No values are currently known. Skipping persisting value maps
2023-11-16 12:19:13.559  INFO 100986 --- [    scheduler-6] c.c.o.c.g.m.GatewayMonitoringService     : No platform credentials are available. Skipping sending monitoring information.
2023-11-16 12:19:13.559  INFO 100986 --- [    scheduler-2] c.c.o.c.g.m.GatewayMonitoringService     : Items left to flush: Measurements 0, Events 0, Alarms 0, MaxCapacity: 250000
2023-11-16 12:19:13.561  INFO 100986 --- [    scheduler-6] c.c.o.c.g.s.SubscriptionUpdateScheduler  : Update subscriptions for knowing servers
2023-11-16 12:19:13.561  INFO 100986 --- [    scheduler-6] c.c.o.c.g.s.SubscriptionUpdateScheduler  : Platform credentials are not available yet, skip updating subscription and will check again in the next round
2023-11-16 12:19:14.330  INFO 100986 --- [    scheduler-1] c.c.o.c.g.b.service.BootstrapService     : Polling device credentials...
2023-11-16 12:19:14.331  INFO 100986 --- [    scheduler-1] c.c.o.c.g.b.service.BootstrapService     : Credentials is not available locally or bootstrap is forced, polling from server..
2023-11-16 12:19:14.337 ERROR 100986 --- [    scheduler-1] o.s.s.s.TaskUtils$LoggingErrorHandler    : Unexpected error occurred in scheduled task

javax.ws.rs.ProcessingException: java.net.UnknownHostException: iot-edge-server.persistent.co.in: Name or service not known
        at org.glassfish.jersey.apache.connector.ApacheConnector.apply(ApacheConnector.java:531)
        at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:297)
        at org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$0(JerseyInvocation.java:630)
        at org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:665)
        at org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:659)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:205)
        at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390)
        at org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:659)
        at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:629)
        at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:434)
        at org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:340)
        at com.cumulocity.sdk.client.RestConnector.httpPost(RestConnector.java:376)
        at com.cumulocity.sdk.client.RestConnector.post(RestConnector.java:269)
        at com.cumulocity.sdk.client.devicecontrol.DeviceCredentialsApiImpl.pollCredentials(DeviceCredentialsApiImpl.java:46)
        at com.cumulocity.opcua.client.gateway.bootstrap.service.BootstrapService.pollDeviceCredentials(BootstrapService.java:157)
        at com.cumulocity.opcua.client.gateway.bootstrap.service.BootstrapService.lambda$scheduleDeviceCredentialsPoll$0(BootstrapService.java:144)
        at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        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)
Caused by: java.net.UnknownHostException: iot-edge-server.persistent.co.in: Name or service not known
        at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
        at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:930)
        at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1543)
        at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:848)
        at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1533)
        at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1386)
        at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1307)
        at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)
        at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:111)
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
        at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
        at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
        at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
        at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
        at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71)
        at org.glassfish.jersey.apache.connector.ApacheConnector.apply(ApacheConnector.java:483)
        ... 24 common frames omitted

The hostname can’t be resolved by your DNS.

Do you have an IP address? If yes check the IP address, if you can reach it from your local machine you can add this to your local host file. If not, please check with the IT/infrastructure department how you can reach that host iot-edge-server.persistent.co.in