技术文章 - CS357916

在 Vuforia View 中,使用 CA SSL 证书并在 Vuforia Experience Service 中启用 HTTPS 时,不会显示体验

已修改: 24-Sep-2025   


注意:本文已使用机器翻译软件翻译,以方便非英语客户阅读。但翻译内容可能包含语法错误或不准确之处。请注意, PTC对本文所含信息的翻译准确性及使用后果不承担任何责任。请在 此处 查看本文的英文原始版本以便参考。有关机器翻译的更多详情,请单击 此处
感谢您告诉我们。我们将尽快审阅此译文。

适用于

  • 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