技术文章 - CS357916
在 Vuforia View 中,使用 CA SSL 证书并在 Vuforia Experience Service 中启用 HTTPS 时,不会显示体验
已修改: 24-Sep-2025
适用于
- Vuforia Studio 8.0.0 N/A to 10.1.0
- Vuforia Experience Service 8.0.0 to 10.1.0
- Vuforia View 8.0.0 to 10.1.0
- CA who signed this certificate is embedded in NodeJS
说明
- 在 Vuforia View 中,使用 CA SSL 证书并在 Vuforia Experience Service 中启用 HTTPS 时,不会显示体验
- 在 Vuforia View 日志文件中,报告了此异常:
MM-DD HH:MM:SS.ms 1963 2752 I TGXIdentityRequestTask: TGXIdentityRequestTask full request URL: https://<hostname vuforia experience service>:<port>/ExperienceService/id-resolution/resolutions?key=urn:vuforia:nokey&resourcetype=Experience&wNdp=360&aspect=spatial-tracking MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: Exception processing identity resolution request MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: java.io.IOException: Exception while obtaining HttpURLConnection.getResponseCode() result MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.ptc.thingx.cordova.plugin.core.TGXUtils.getResponseCode(TGXUtils.java:445) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.ptc.thingx.cordova.plugin.core.TGXUtils.openConnection(TGXUtils.java:604) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.ptc.thingx.cordova.plugin.identity.TGXIdentityRequestTask.run(TGXIdentityRequestTask.java:76) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at java.util.concurrent.FutureTask.run(FutureTask.java:266) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at java.lang.Thread.run(Thread.java:929) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: Caused by: java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at java.util.concurrent.FutureTask.report(FutureTask.java:123) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at java.util.concurrent.FutureTask.get(FutureTask.java:193) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.ptc.thingx.cordova.plugin.core.TGXUtils.getResponseCode(TGXUtils.java:436) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: ... 7 more MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:231) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.okhttp.internal.io.RealConnection.connectTls(RealConnection.java:196) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:153) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:116) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:186) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:542) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:106) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:30) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.ptc.thingx.cordova.plugin.core.TGXUtils.lambda$getResponseCode$0(TGXUtils.java:433) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.ptc.thingx.cordova.plugin.core.-$$Lambda$TGXUtils$6p3gtawriLJcgD-X_3j-WMeQvs4.call(Unknown Source:4) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: ... 4 more MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:658) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:507) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:426) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.org.conscrypt.TrustManagerImpl.getTrustedChainForServer(TrustManagerImpl.java:354) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:94) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:89) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:224) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.org.conscrypt.ConscryptFileDescriptorSocket.verifyCertificateChain(ConscryptFileDescriptorSocket.java:407) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.org.conscrypt.NativeSsl.doHandshake(NativeSsl.java:387) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:226) MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: ... 19 more MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: Caused by: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. MM-DD HH:MM:SS.ms 1963 2752 E TGXIdentityRequestTask: ... 30 more MM-DD HH:MM:SS.ms 1963 2752 W TGX_ExperienceLoader: Error occurred while fetching experiences from VES; error: java.io.IOException: Exception while obtaining HttpURLConnection.getResponseCode() result, statusCode: 0, wasInterrupted: false MM-DD HH:MM:SS.ms 1963 2752 I TGXIdentityRequestTask: TGXIdentityRequestTask complete. MM-DD HH:MM:SS.ms 1963 1963 W HiTouch_PressGestureDetector: Touch pointer move a lot. The moving distance of X is:40.916565, limit is:60The moving distance of Y is:123.84546, limit is:60 MM-DD HH:MM:SS.ms 1963 2758 I TGXIdentityRequestTask: TGXIdentityRequestTask starting on thread 4311 (ExperienceListLoader-5) for https://<hostname vuforia experience service>:<port>/ExperienceService/id-resolution/resolutions?key=urn:vuforia:nokey&resourcetype=Experience&wNdp=360 ... MM-DD HH:MM:SS.ms 1963 2758 I TGXIdentityRequestTask: TGXIdentityRequestTask full request URL: https://<hostname vuforia experience service>:<port>/ExperienceService/id-resolution/resolutions?key=urn:vuforia:nokey&resourcetype=Experience&wNdp=360&aspect=spatial-tracking MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: Exception processing identity resolution request MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: java.io.IOException: Exception while obtaining HttpURLConnection.getResponseCode() result MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.ptc.thingx.cordova.plugin.core.TGXUtils.getResponseCode(TGXUtils.java:445) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.ptc.thingx.cordova.plugin.core.TGXUtils.openConnection(TGXUtils.java:604) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.ptc.thingx.cordova.plugin.identity.TGXIdentityRequestTask.run(TGXIdentityRequestTask.java:76) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at java.util.concurrent.FutureTask.run(FutureTask.java:266) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at java.lang.Thread.run(Thread.java:929) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: Caused by: java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at java.util.concurrent.FutureTask.report(FutureTask.java:123) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at java.util.concurrent.FutureTask.get(FutureTask.java:193) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.ptc.thingx.cordova.plugin.core.TGXUtils.getResponseCode(TGXUtils.java:436) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: ... 7 more MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:231) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.okhttp.internal.io.RealConnection.connectTls(RealConnection.java:196) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:153) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:116) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:186) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:542) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:106) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:30) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.ptc.thingx.cordova.plugin.core.TGXUtils.lambda$getResponseCode$0(TGXUtils.java:433) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.ptc.thingx.cordova.plugin.core.-$$Lambda$TGXUtils$6p3gtawriLJcgD-X_3j-WMeQvs4.call(Unknown Source:4) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: ... 4 more MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:658) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:507) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:426) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.org.conscrypt.TrustManagerImpl.getTrustedChainForServer(TrustManagerImpl.java:354) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:94) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:89) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:224) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.org.conscrypt.ConscryptFileDescriptorSocket.verifyCertificateChain(ConscryptFileDescriptorSocket.java:407) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.org.conscrypt.NativeSsl.doHandshake(NativeSsl.java:387) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:226) MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: ... 19 more MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: Caused by: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. MM-DD HH:MM:SS.ms 1963 2758 E TGXIdentityRequestTask: ... 30 more MM-DD HH:MM:SS.ms 1963 2758 W TGX_ExperienceLoader: Error occurred while fetching experiences from VES; error: java.io.IOException: Exception while obtaining HttpURLConnection.getResponseCode() result, statusCode: 0, wasInterrupted: false
- 在 Vuforia Studio 中,在项目中验证 Vuforia Experience Service URL 时失败
- 在 Vuforia Studio 日志文件中,我们可以看到报告了此异常:
[YYYY-MM-DDTHH:MM:SS.MSZ] error: [twx-studio:auth:oauthHandler] Error making request for oauth config unable to verify the first certificate Error: unable to verify the first certificate
at TLSSocket.onConnectSecure (_tls_wrap.js:1514:34)
at TLSSocket.emit (events.js:375:28)
at TLSSocket.emit (domain.js:470:12)
at TLSSocket._finishInit (_tls_wrap.js:936:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:708:12)
at TLSWrap.callbackTrampoline (internal/async_hooks.js:131:17) {
code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE'- 运行此命令时: openssl s_client -connect https://<hostname vuforia experience service>:<port>
- 此命令的输出报告以下错误:
- 验证错误:num=20:无法获取本地颁发者证书
- 验证错误:num=21:无法验证第一个证书
- 验证返回代码:21(无法验证第一个证书)
- ThingWorx 证书更新后,Vuforia Experience Service 无法正确启动
这是文章 357916 的 PDF 版本,可能已过期。最新版本 CS357916