If you use any connector or integration that authenticates to AAI with a client certificate
— including IWS, Airflow, Automic, Control-M, or a similar third-party scheduler integration
— upgrading to AAI 26.0.0 stops every one of them working immediately.
This article explains why, and how to get each connector working again.
New to certificate terminology? This article uses terms like certificate authority and SAN without redefining them.
See: AAI Glossary — Terms Used in the 26.0.0 Upgrade Documentation
passthrough (not the edge default) and whether the gateway's own SSL configuration is enabled. Your existing connector certificates were signed by your own certificate authority, but after the upgrade the gateway validates connectors against a brand-new, dedicated connector certificate authority it generates automatically
— one that has no relationship to your own certificates at all.
Your gateway's own certificate is not reissued by this upgrade
— it's carried forward unchanged, and isn't the cause of this (see Ports, HTTPS, and Certificates in AAI 26.0.0).
This is expected behavior, not a defect.
keytool on your PATH, if you want to inspect a connector certificate directly. Ships with any JDK — check with keytool -version (same command on Linux and Windows). If not recognized, add your JDK's bin directory to PATH, or use the JDK bundled with your AAI installation if it has one.<install> throughout).Two separate things need to happen before a connector works again:
Connectors don't authenticate against your organization's general HTTPS certificate — they present their own client certificate directly to the gateway,
and the gateway validates it against a dedicated connector certificate authority that AAI generates automatically.
Before the upgrade, your connectors were signed by your own certificate authority; after the upgrade, the gateway only trusts certificates signed by this new, separate connector certificate authority.
Your existing connector certificates, though never expired or revoked, don't chain up to it at all — because it didn't exist until the upgrade created it.
Your gateway's own certificate is not the cause of this and does not change as part of this upgrade (see Ports, HTTPS, and Certificates in AAI 26.0.0).
This means the failure looks like a certificate problem (because it is one) rather than a version-mismatch problem — expect handshake failures, not a friendly "please upgrade your connector" message.
Do this for each connector separately. You do not need to regenerate the gateway's own certificate again — only the connector-side certificates.
Linux:
cd <install>/connectors
./generateFegConnector.sh \
--customer-ca "<path-to-your-connector-CA-file>.p12" \
--additional-trust-cert "<path-to-your-gateway's-own-certificate-file>" \
--additional-trust-cert-password "<your-gateway-certificate's-plaintext-password>" \
--connector-name "<your-connector-name>" \
--connector-sans "<connector-ip>,<connector-hostname>" \
--ca-password "<your-connector-CA-password>" \
--connector-password "<new-connector-keystore-password>" \
--output-dir "<install>/connectors/upgrade-output"Windows:
cd "<install>\connectors"
generateFegConnector.bat ^
--customer-ca "<path-to-your-connector-CA-file>.p12" ^
--additional-trust-cert "<path-to-your-gateway's-own-certificate-file>" ^
--additional-trust-cert-password "<your-gateway-certificate's-plaintext-password>" ^
--connector-name "<your-connector-name>" ^
--connector-sans "<connector-ip>,<connector-hostname>" ^
--ca-password "<your-connector-CA-password>" ^
--connector-password "<new-connector-keystore-password>" ^
--output-dir "<install>\connectors\upgrade-output"--customer-ca here is your connector certificate authority
— not your own organization's certificate.
A connector needs to trust two independent things at once: the connector certificate authority that signs it, and your gateway's own certificate, which it also has to trust in order to connect at all.
That's what the two --additional-trust-cert flags are for — they point at your gateway's own existing certificate file and its plaintext password (the same certificate covered in Ports, HTTPS, and Certificates in AAI 26.0.0).
Leaving either of these two flags out lets the command complete successfully, but the connector will still fail to connect afterward with a certificate-chain error
— the connector certificate authority alone has no relationship to your gateway's certificate and cannot vouch for it. Nothing on the gateway host itself needs to change or restart for this step.
Then, for each connector:
<your-connector-name>.jar (and only that file — not the accompanying .p12, which contains a private key and should stay with whoever administers the certificates) to the connector host's secure configuration location.Plan this as part of the same maintenance window as the upgrade itself, not a follow-up task — every affected connector is down from the moment the upgrade completes until this finishes for that connector.
SAN (Subject Alternative Name) is the list of hostnames/IPs a certificate is valid for — every connector certificate has one, identifying the connector. Separately from certificate regeneration,
AAI 26.0.0 has an optional feature that restricts which connector identities are permitted to connect at all
— independent of whether their certificate is otherwise valid.
When it's active, a freshly regenerated, perfectly valid connector certificate can still be rejected if its identity hasn't been explicitly added to the allowlist.
This is easy to misdiagnose as "the certificate regeneration didn't work," when the certificate is actually fine.
Whether this applies to you depends on your environment:
CONNECTOR_SAN_ALLOWLIST_ENABLED=true in your properties file). If nobody enabled this on your install, this section doesn't apply to you — skip to §4.Check whether it's active, and what's currently allowed, from the gateway's own startup log:
grep -i "Connector SAN allowlist loaded from" <your-gateway-log>Connector SAN allowlist loaded from '/etc/aai/connector-allowlist.json': 2 allowed SAN value(s): [10.0.1.5, 10.0.1.9]Confirm a specific rejection is actually the allowlist, not the certificate itself:
grep -i "not found in connector allowlist" <your-gateway-log>A match names the exact SAN(s) presented and rejected:
Rejecting request: client certificate SAN(s) [10.0.1.12] not found in connector allowlist (subject=CN=my-connector)Add the new connector's identity to the allowlist. The file is JSON, one entry per connector:
{
"connectors": [
{ "name": "store-connector-01", "sans": ["10.0.1.5"] }
]
}CONNECTOR_ALLOWLIST_PATH property points to, add an entry for the new connector's SAN(s), then restart the gateway. generateFegConnector to generate the connector, pass --allowlist-path pointing at this same file so the new entry merges in automatically instead of hand-editing JSON.kubectl exec. --allowlist-path. Confirm the new certificate is actually what's being presented, and that the gateway is accepting it:
openssl s_client -connect <connector-host>:<connector-port> -showcerts </dev/nullConfirm the certificate's issuer matches your certificate authority, and that its Subject Alternative Names include the hostname/IP the connector actually connects from
— a mismatch here (rather than an expired or wrong-CA certificate) is one of the more common causes of a handshake still failing after regeneration.
If the handshake succeeds but the connector still reports errors, check the connector's own log for the exact rejection
— a wrong CN/SAN, an unallowlisted identity (§3), and an expired certificate all fail differently and are easy to tell apart once you're looking at the actual log line rather than guessing from symptoms alone.