@DavidTurner Yes, exactly right on the configuration. Here are the detailed logs from both nodes:
MASTER000010 configuration (implicit trust):
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.keystore.path: certs/XpackCert.pfx
xpack.security.transport.ssl.verification_mode: certificate
QUERY00000C configuration (explicit trust):
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.keystore.path: certs/XpackCert.pfx
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.truststore.path: certs/transport-truststore.p12
From MASTER000010 logs:
[2026-04-28T11:52:15,977][WARN ][o.e.x.c.s.t.n.SecurityNetty4Transport] [MASTER000010] client did not trust this server's certificate, closing connection Netty4TcpChannel{localAddress=/172.23.0.4:52740, remoteAddress=172.23.0.12/172.23.0.12:9300, profile=default}
[2026-04-28T11:52:15,983][WARN ][o.e.c.c.Coordinator ] [MASTER000010] received join request from [{QUERY00000C}] but could not connect back to the joining node
org.elasticsearch.transport.ConnectTransportException: [QUERY00000C][172.23.0.12:9300] general node connection failure
From QUERY00000C logs:
[2026-04-28T11:50:33,042][INFO ][o.e.c.c.JoinHelper ] [QUERY00000C] failed to join {MASTER000010} with JoinRequest{sourceNode={QUERY00000C}...}
org.elasticsearch.transport.RemoteTransportException: [MASTER000010][172.23.0.4:9300][internal:cluster/coordination/join]
Caused by: org.elasticsearch.transport.NodeDisconnectedException: [QUERY00000C][172.23.0.12:9300] failure when opening connection back from [{MASTER000010}] to [{QUERY00000C}]
Caused by: org.elasticsearch.transport.ConnectTransportException: [QUERY00000C][172.23.0.12:9300] general node connection failure
Analysis:
The error "client did not trust this server's certificate" from MASTER000010 indicates that QUERY00000C is rejecting MASTER000010's certificate when MASTER000010 tries to connect back.
The truststore on QUERY00000C contains both certificate authority chains (4 certificates total: 2 intermediate CAs + 2 root CAs covering both old and new issuers). However, it appears QUERY00000C cannot validate MASTER000010's certificate.
Question: Is there a known incompatibility when mixing implicit trust (keystore-embedded CAs) and explicit trust (separate truststore file) within the same cluster during a rolling deployment? Or should both configurations work together seamlessly?
_ssl/certificate response from Query Node :
[
{
"path" : "certs/XpackCert.pfx",
"format" : "PKCS12",
"alias" : "node-cert-alias",
"subject_dn" : "CN=Intermediate CA G2, O=CA Provider, C=US",
"serial_number" : "1a2b3c4d5e6f7890abcdef1234567890",
"has_private_key" : false,
"expiry" : "2029-06-03T20:03:02.000Z",
"issuer" : "CN=Root CA G2, O=CA Provider, C=US"
},
{
"path" : "certs/XpackCert.pfx",
"format" : "PKCS12",
"alias" : "node-cert-alias",
"subject_dn" : "CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US",
"serial_number" : "33af1e6a711a9a0bb2864b11d09fae5",
"has_private_key" : false,
"expiry" : "2038-01-15T12:00:00.000Z",
"issuer" : "CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US"
},
{
"path" : "certs/XpackCert.pfx",
"format" : "PKCS12",
"alias" : "node-cert-alias",
"subject_dn" : "CN=node.example.com",
"serial_number" : "9f8e7d6c5b4a3210fedcba0987654321",
"has_private_key" : true,
"expiry" : "2026-07-19T13:35:57.000Z",
"issuer" : "CN=Intermediate CA G2, O=CA Provider, C=US"
},
{
"path" : "certs/XpackCert.pfx",
"format" : "PKCS12",
"alias" : "node-cert-alias",
"subject_dn" : "CN=Root CA G2, O=CA Provider, C=US",
"serial_number" : "2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e",
"has_private_key" : false,
"expiry" : "2029-06-19T23:59:59.000Z",
"issuer" : "CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US"
},
{
"path" : "certs/transport-truststore.p12",
"format" : "PKCS12",
"alias" : "g1-intermediate-ca",
"subject_dn" : "CN=Intermediate CA G1, O=CA Provider, C=US",
"serial_number" : "3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f",
"has_private_key" : false,
"expiry" : "2028-05-25T23:49:33.000Z",
"issuer" : "CN=Root CA G1, O=CA Provider, C=US"
},
{
"path" : "certs/transport-truststore.p12",
"format" : "PKCS12",
"alias" : "g1-root-ca",
"subject_dn" : "CN=Root CA G1, O=CA Provider, C=US",
"serial_number" : "4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f90",
"has_private_key" : false,
"expiry" : "2042-07-18T23:00:23.000Z",
"issuer" : "CN=Root CA G1, O=CA Provider, C=US"
},
{
"path" : "certs/transport-truststore.p12",
"format" : "PKCS12",
"alias" : "g2-intermediate-ca",
"subject_dn" : "CN=Intermediate CA G2, O=CA Provider, C=US",
"serial_number" : "5e6f7a8b9c0d1e2f3a4b5c6d7e8f9012",
"has_private_key" : false,
"expiry" : "2029-06-03T20:03:02.000Z",
"issuer" : "CN=Root CA G2, O=CA Provider, C=US"
},
{
"path" : "certs/transport-truststore.p12",
"format" : "PKCS12",
"alias" : "g2-root-ca",
"subject_dn" : "CN=Root CA G2, O=CA Provider, C=US",
"serial_number" : "6f7a8b9c0d1e2f3a4b5c6d7e8f901234",
"has_private_key" : false,
"expiry" : "2029-06-19T23:59:59.000Z",
"issuer" : "CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US"
}
]
Master Node Response :
[
{
"path" : "certs/XpackCert.pfx",
"format" : "PKCS12",
"alias" : "node-cert-alias",
"subject_dn" : "CN=Intermediate CA G2, O=CA Provider, C=US",
"serial_number" : "1a2b3c4d5e6f7890abcdef1234567890",
"has_private_key" : false,
"expiry" : "2029-06-03T20:03:02.000Z",
"issuer" : "CN=Root CA G2, O=CA Provider, C=US"
},
{
"path" : "certs/XpackCert.pfx",
"format" : "PKCS12",
"alias" : "node-cert-alias",
"subject_dn" : "CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US",
"serial_number" : "33af1e6a711a9a0bb2864b11d09fae5",
"has_private_key" : false,
"expiry" : "2038-01-15T12:00:00.000Z",
"issuer" : "CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US"
},
{
"path" : "certs/XpackCert.pfx",
"format" : "PKCS12",
"alias" : "node-cert-alias",
"subject_dn" : "CN=master.example.com",
"serial_number" : "abc123def456789fedcba9876543210",
"has_private_key" : true,
"expiry" : "2026-07-19T13:35:57.000Z",
"issuer" : "CN=Intermediate CA G2, O=CA Provider, C=US"
},
{
"path" : "certs/XpackCert.pfx",
"format" : "PKCS12",
"alias" : "node-cert-alias",
"subject_dn" : "CN=Root CA G2, O=CA Provider, C=US",
"serial_number" : "def789abc123456fedcba1234567890",
"has_private_key" : false,
"expiry" : "2029-06-19T23:59:59.000Z",
"issuer" : "CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US"
}
]