Problem
When monitoring a storage system with the Storage Analyzer KM or Storage All-in-One ETL, you might encounter the following error message:
ERROR: 2025/05/12 10:01:56 BRT ; Thread 30 ; SKM@192.168.10.36 ; com.sentrysoftware.silicium.core.engine.Engine ; $Revision $ ; performJob
     | ExecutionException detected during job operation DISCOVERY. Environment: 192.168.10.36
     | EXCEPTION SunCertPathBuilderException : unable to find valid certification path to requested target
     |        sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:146)
     |        sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:127)
     |        java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
     |        sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:451)
     |        sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:323)
     |                   sun.security.validator.Validator.validate(Validator.java:271)
     |        sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:315)
     |        sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:223)
     |        sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:129)
     |        sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:638)
     |        sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:473)
     |        sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:369)
     |        sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:377)
     |        sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444)
     |        sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422)
     |        sun.security.ssl.TransportContext.dispatch(TransportContext.java:182)
     |               sun.security.ssl.SSLTransport.decode(SSLTransport.java:152)
     |        sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1401)
     |        sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1309)
     |        sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:440)
     |        sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
     |        sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:197)
     |        sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:167)
     |        com.sentrysoftware.silicium.protocolclients.http.impl.HTTPRequester.connectHttps(HTTPRequester.java:204)
     |        com.sentrysoftware.silicium.protocolclients.http.impl.HTTPRequester.processHttps(HTTPRequester.java:172)
     |        com.sentrysoftware.silicium.protocolclients.http.impl.HTTPRequester.runHTTP(HTTPRequester.java:158)
     |        com.sentrysoftware.silicium.protocolclients.http.impl.HTTPClientImpl.request(HTTPClientImpl.java:102)
     |        com.sentrysoftware.silicium.protocolclients.http.impl.HTTPClientImpl.request(HTTPClientImpl.java:27)
     |        com.sentrysoftware.silicium.protocolclients.client.concurrent.RequestTask.run(RequestTask.java:93)
     |                       java.lang.Thread.run(Thread.java:750)
This is a common Java SSL/TLS issue, occurring when the JVM cannot validate the SSL certificate of the remote server or storage system because the Certificate Authority (CA) in the certificate chain is not recognized.
Solution
To solve this issue, retrieve the storage system’s certificate and import it into the JVM Truststore as outlined below.
Step 1: Retrieve the SSL certificate
Use a Web browser or the openssl command-line tool to fetch the SSL certificate from the target server or storage system. You can for example run the following command to display the certificate chain:
        openssl s_client -connect <host>:<port> -showcerts
where:
- <host>is the hostname of the server or storage system
- <port>is the port of the server or storage system
Example:
        openssl s_client -connect emc-unity:443 -showcerts
Expected Output:
    CONNECTED(00000004)
    Can't use SSL_get_servername
    depth=0 CN = *.lab.sentrysoftware.net
    verify error:num=20:unable to get local issuer certificate
    verify return:1
    depth=0 CN = *.lab.sentrysoftware.net
    verify error:num=21:unable to verify the first certificate
    verify return:1
    depth=0 CN = *.lab.sentrysoftware.net
    verify error:num=10:certificate has expired
    notAfter=Jun 18 23:59:59 2022 GMT
    verify return:1
    depth=0 CN = *.lab.sentrysoftware.net
    notAfter=Jun 18 23:59:59 2022 GMT
    verify return:1
    ---
    Certificate chain
    0 s:CN = *.sentrysoftware.net
    i:C = FR, ST = Paris, L = Paris, O = Gandi, CN = Gandi Standard SSL CA 2
Sample certificate:
    -----BEGIN CERTIFICATE-----
    MIIGZTCCBU2gAwIBAgIRALPYtNeeHxx7gnXaC8URPxcwDQYJKoZIhvcNAQELBQAw
    XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO
    MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy
    MB4XDTIxMDUyMTAwMDAwMFoTIyMD45YxODIzNTk1OVowKDEmMCQGA1UEAwwdKi5p
    bnRlcm5hbC5zZW50cnlzb2Z0d2FyZS5uZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IB
    DwAwggEKAoIBAQDeheuQVw9fidctJPeSqTB+y5FI6ocG518w2owDWfjVLIlMh41c
    DP4fU0Wp1k+KiHF/LexSlOpozrgAdwDfpV6raIJPH2yt7rhfTj5a6s2iEqRqXo47
    EsAgRFwqcwAAAXmNF5C+AAAEAwBIMEYCIQDW3GfzmJHDfbvd0uaGUOB54U0c3QN1
    ...
    KXm+8J45OSHwVnOfY6V35b5XfZxgCvj5TV0mXCVdx4QAAAF5jReQvgAABAMARzBF
    AiEAnizT0MW/r0iCMG/iWXpGRHdQwXMZPAoE76bKXZvtymkCIF7gSbe0+kWp4NOw
    jMq5qNe0pe8mdjqzahuwD3eU56EjMA0GCSqGSIb3DQEBCwUAA4IBAQALgqZjDDmV
    +gSPA90pWYy6HJUNK4Uh3QbMsQk6UWei4ifINfvxJioVbk/4/FScyUBw4CzeurVU
    BZtg1qFracZnY7rEZQoP2fifgDK+BJsavVSFxfdz6xABYs8BfcLMuABM0KcKVAow
    4lNcQblRY4ah59zuxSZ8E5le4YdKoCmwTgVIlvvNLOKcb38dadvDbwWKWoLvNYd4
    TW+laCIrEMBZJa6W1mo68R+besVC5cxKwIjFH2HGmF4nxNaEzWyP9dZT1Hvgf/SK
    UNMnLmw20x9GULfkpA2LBj3WxPntRiXl3Iab9dGWYpJnxIY0AUr39qQbHRHh2l9u
    GNQQh/HojviD
    -----END CERTIFICATE-----
Save the certificate in PEM format (e.g.: C:\temp\emc-unity.pem).
Step 2: Import the certificate into the Java Truststore
Use the keytool utility to import the certificate into the Java truststore:
    keytool -importcert -alias customCert -keystore $JAVA_HOME/lib/security/cacerts -file yourcert.pem
Notes:
- For BHCO/TSCO, the Java truststore should be located in $BCO_HOME/<jdk_version>/lib/security/cacerts (e.g: /opt/bmc/BCO/jdk-11.0.18+10/lib/security/cacerts)
- The default password is changeit
Example:
keytool -import -trustcacerts -alias emc-unity -file C:\temp\emc-unity.pem -keystore "C:\BMCSoftware\Patrol3\SEN_jre\lib\security\cacerts" -storepass changeit
Expected Output:
Owner: CN=*.lab.sentrysoftware.net
Issuer: CN=Gandi Standard SSL CA 2, O=Gandi, L=Paris, ST=Paris, C=FR
Serial number: b3c8b4d53e1f2c2b6275da0dc5213f12
Valid from: Fri May 21 02:00:00 CEST 2021 until: Sun Jun 19 01:59:59 CEST 2022
Certificate fingerprints:
         SHA1: 2E:73:D6:E3:81:5F:3F:02:FF:62:FC:75:F9:02:8D:D4:0B:95:FB:64
         SHA256: 49:63:86:46:8F:55:51:0D:6B:C9:96:48:85:D5:8E:10:D6:AD:1D:05:B1:75:E4:04:94:D7:32:7F:2D:18:82:A9
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
 
Extensions:
 
#1: ObjectId: 1.3.6.1.4.1.11129.2.4.2 Criticality=false
0000: 04 82 03 6D 03 6A 01 73   00 45 A6 55 EB 75 FA 91  ...l.j.w.F.U.u..
 
When prompted, respond yes to add it to the keystore:
Trust this certificate? [no]:  yes
Certificate was added to keystore
Step 3: Restart the Java-Based Service
Restart the PATROL Agent or Scheduler (or the relevant Java-based application) to apply changes.
Related Topics
- CIM_ERR_FAILED Errors Occur When Running EMC WBEM-Based ETLs with Java v11.0.15 or Newer
- KMs Report "Collection Hub is not started. Cannot send the query"
- WBEM-Based KMs/ETLs Stop Working After Upgrading JRE to v17+
- No data collected for HPE XP7/XP8 storage systems in TrueSight Capacity Optimization or TrueSight Operations Management
- Monitoring Studio X Unexpectedly Hangs or Consumes High CPU When Running a JRE Higher Than 8

