Sentry ValidatorException: сбой построения пути PKIX - PullRequest
1 голос
/ 08 мая 2019

Прошлой ночью я настроил Sentry из своей домашней сети для регистрации исключений, и это работало безупречно. Когда я пришел на работу и попытался запустить тот же код через рабочую сеть, я получил следующее исключение:

2019-05-08 10:56:02.725  WARN 10204 --- [pool-1-thread-1] 

i.s.c.AbstractConnection.lockdown        : Initiated a temporary lockdown because of exception: An exception occurred while submitting the event to the Sentry server.
2019-05-08 10:56:02.727 ERROR 10204 --- [pool-1-thread-1] io.sentry.connection.AsyncConnection     : An exception occurred while sending the event to Sentry.

io.sentry.connection.ConnectionException: An exception occurred while submitting the event to the Sentry server.
    at io.sentry.connection.HttpConnection.doSend(HttpConnection.java:216) ~[sentry-1.7.5.jar:na]
    at io.sentry.connection.AbstractConnection.send(AbstractConnection.java:76) ~[sentry-1.7.5.jar:na]
    at io.sentry.connection.AsyncConnection$EventSubmitter.run(AsyncConnection.java:185) ~[sentry-1.7.5.jar:na]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_192]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_192]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_192]
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) ~[na:1.8.0_192]
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1946) ~[na:1.8.0_192]
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:316) ~[na:1.8.0_192]
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:310) ~[na:1.8.0_192]
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1639) ~[na:1.8.0_192]
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:223) ~[na:1.8.0_192]
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1037) ~[na:1.8.0_192]
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:965) ~[na:1.8.0_192]
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1064) ~[na:1.8.0_192]
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367) ~[na:1.8.0_192]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395) ~[na:1.8.0_192]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379) ~[na:1.8.0_192]
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559) ~[na:1.8.0_192]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) ~[na:1.8.0_192]
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:162) ~[na:1.8.0_192]
    at io.sentry.connection.HttpConnection.doSend(HttpConnection.java:168) ~[sentry-1.7.5.jar:na]
    ... 5 common frames omitted
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 sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:397) ~[na:1.8.0_192]
    at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302) ~[na:1.8.0_192]
    at sun.security.validator.Validator.validate(Validator.java:262) ~[na:1.8.0_192]
    at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) ~[na:1.8.0_192]
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) ~[na:1.8.0_192]
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) ~[na:1.8.0_192]
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1621) ~[na:1.8.0_192]
    ... 16 common frames omitted
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) ~[na:1.8.0_192]
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) ~[na:1.8.0_192]
    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) ~[na:1.8.0_192]
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:392) ~[na:1.8.0_192]
    ... 22 common frames omitted

Я добавил этот файл .pem в свой cacert и явно указал на него в настройках виртуальной машины через:

-Djavax.net.ssl.trustStore=C:\Users\ocuinr\cacerts 
-Djavax.net.ssl.trustStorePassword=changeit

Но это не помогает.

SSL документы упоминание:

Некоторые версии JRE уже включают сертификаты DigiCert

... что наводит меня на мысль, что я смотрю не в том месте.

Нужно ли добавить исключение в рабочий брандмауэр или я могу отключить проверку SSL, как предложено в Документах Python ?

...