apache/cassandra · error · SSLException
Failed to build key manager store for secure connections
Error message
Failed to build key manager store for secure connections
What it means
In buildKeyManagerFactory, building the KeyStore from PEM material or initializing the KeyManagerFactory failed (bad/undecryptable PEM key, wrong password, cert-chain problem); the exception is wrapped as SSLException('Failed to build key manager store for secure connections'). The node cannot present its TLS identity.
Solutions
- Verify PEM key file, private key, and passwords are correct and consistent
- Ensure the PEM file contains a readable private key and matching certificate chain, then restart
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at src/java/org/apache/cassandra/security/PEMBasedSslContextFactory.java:262 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/1e29698861df4625.
Report an issue: GitHub.
Appendix: source
Thrown at src/java/org/apache/cassandra/security/PEMBasedSslContextFactory.java:262
KeyManagerFactory kmf = KeyManagerFactory.getInstance(
algorithm == null ? KeyManagerFactory.getDefaultAlgorithm() : algorithm);
KeyStore ks = buildKeyStore(pemBasedKeyStoreContext.key, pemBasedKeyStoreContext.password);
if (!keyStoreContext.checkedExpiry)
{
checkExpiredCerts(ks);
keyStoreContext.checkedExpiry = true;
}
kmf.init(ks, pemBasedKeyStoreContext.password != null ? pemBasedKeyStoreContext.password.toCharArray() : null);
return kmf;
}
else
{
throw new SSLException("Must provide outbound_keystore or outbound_private_key in configuration for PEMBasedSSlContextFactory");
}
}
catch (Exception e)
{
throw new SSLException("Failed to build key manager store for secure connections", e);
}
}
/**
* Builds TrustManagerFactory from the PEM based truststore.
*
* @return TrustManagerFactory from the PEM based truststore
* @throws SSLException if any issues encountered during the build process
*/
@Override
protected TrustManagerFactory buildTrustManagerFactory() throws SSLException
{
try
{
if (hasTruststore())
{
if (pemEncodedTrustCertificates.maybeFilebasedKey)
{View on GitHub (pinned to 88fd0f6a0e)