Next Practical Step
Identify whether the failure is HTTP sampler TLS, recorder CA, or distributed RMI SSL, then apply the matching section above.
Fix JMeter SSLHandshakeException and PKIX path building failed: truststore, SNI, TLS version, client certs, and recorder CA issues. Symptom, causes, fixes.
Samples fail with TLS-related messages, often wrapped as Non HTTP response errors:
javax.net.ssl.SSLHandshakeExceptionPKIX path building failed / unable to find valid certification pathReceived fatal alert: handshake_failureunknown_ca or HTTPS pages never record cleanly (recorder best practices)HTTP may work in a browser that already trusts the corporate CA, while JMeter’s JVM does not.
| Cause | Notes |
|---|---|
| Untrusted server certificate | Lab/self-signed or private PKI not in the JVM truststore JMeter uses |
| Hostname / SNI mismatch | Certificate CN/SAN does not match the server name in the sampler |
| TLS version or cipher mismatch | Server requires TLS 1.2+; client restricted by JVM or properties |
| Client certificate required | Mutual TLS; keystore not configured on the HTTP Request / system properties |
| Recorder without JMeter CA | HTTPS recording needs ApacheJMeterTemporaryRootCA trusted (proxy tutorial) |
| RMI SSL between engines | Distributed mode since JMeter 4.0 defaults to SSL for RMI (remote testing) - different from HTTP TLS |
https and the correct port (usually 443).ApacheJMeterTemporaryRootCA.crt from the JMeter launch directory into the browser trust store.proxyserver.jks when documented).unknown_ca usually means the browser has not accepted the JMeter proxy certificate.create-rmi-keystore scripts and distribute rmi_keystore.jks to controller and workers.SSLHandshakeException against the SUT - check whether the error is on jmeter-server startup or on an HTTP sampler.| Resource | Use when |
|---|---|
| HTTP recorder | Recording HTTPS |
| Properties cheat sheet | SSL-related properties |
| Remote testing | RMI SSL keystores |
| Non HTTP response code | How JMeter wraps SSL errors |
Browsers use the OS trust store. JMeter uses the JVM trust store unless configured otherwise. Corporate CAs often exist in one but not the other.
Related family: unknown_ca during recording means the browser rejected the JMeter MITM CA. Load-test SSLHandshakeException usually means JMeter rejected the server certificate (or mTLS failed).
Only in controlled non-production labs, and document it. Production-like tests should use proper trust material so TLS cost and failures are realistic.
On this page