In ITSI versions 4.20.x through 4.21.2, the internal certificate generation script (itsi_nats_tls_helper.py) self-signs the local root CA (ca-cert.pem) using openssl x509 -req -signkey without passing the required X.509 v3 extension flags.
ca-cert.pem is created as an X.509 v1 certificate lacking basicConstraints=critical,CA:TRUE and keyUsage=critical,keyCertSign,cRLSign.CA:TRUE constraint (OpenSSL Error 79: invalid CA certificate).Run the following checks on the Search Head (or each node in a Search Head Cluster):
Run the following OpenSSL command:
openssl x509 -in $SPLUNK_HOME/etc/auth/nats/ca-cert.pem -noout -text | grep -A1 "Basic Constraints"CA:TRUE is missing.X509v3 Basic Constraints: critical
CA:TRUE
Verify the local client certificate against the CA:
error 79 at 1 depth lookup: invalid CA certificateERROR [rulesengine] [pool-454-thread-1] EventQueueProcessingActor:354 - Status=Failed, ErrorMessage="NATS exception: javax.net.ssl.SSLHandshakeException: (certificate_unknown) PKIX path validation failed: sun.security.validator.ValidatorException: TrustAnchor with subject \"CN=Splunk CA, OU=Splunk, O=Splunk, L=NY, ST=CA, C=US\" is not a CA certificate"
$SPLUNK_HOME/var/log/splunk/itsi-nats-server.log
[ERR] TLS handshake error: tls: failed to verify certificate: x509: certificate signed by unknown authority (possibly because of "x509: invalid signature: parent certificate cannot sign this kind of certificate" while trying to verify candidate authority certificate "Splunk CA")
[ERR] TLS handshake error: tls: received record with version 301 when expecting version 303
[ERR] TLS route handshake error: tls: client didn't provide a certificateUpgrade Splunk IT Service Intelligence to ITSI 4.21.3, ITSI 5.0.0, or higher.
NatsLegacyCACertExtensionMigration upgrade handler.If certificate replacement cannot be performed immediately, bypass the NATS queue by falling back to Real-Time (RT) search mode:
itsi_event_grouping).SPL Search Command:
If operating in an isolated internal/test environment where unencrypted traffic is permissible:
$SPLUNK_HOME/etc/apps/SA-ITOA/local/itsi_nats.conf:
[nats_settings]
require_tls_client_cert_cloud = 0
require_tls_client_cert_on_prem = 0
$SPLUNK_HOME/etc/apps/SA-ITOA/local/itsi_rules_engine.properties:
nats_require_tls_client_cert_cloud = false
nats_require_tls_client_cert_on_prem = false
$SPLUNK_HOME/etc/apps/SA-ITOA/bin/nats/nats-js.conf and restart Splunk.If an immediate upgrade is not feasible, generate compliant certificates manually and distribute them across all Search Heads:
On all Search Heads:
Copy the generated ca-cert.key and ca-cert.pem to $SPLUNK_HOME/etc/auth/nats/ on all other Search Heads in the cluster to maintain a shared trust anchor.
Run these commands on every Search Head individually:
On all Search Heads:
$SPLUNK_HOME/var/log/splunk/itsi-nats-server.log and confirm there are no TLS handshake error or PKIX path validation entries.0.| Revision | Publish Date | Comments |
|---|---|---|
1.0 |
01-Oct-2026
|
Initial Release |