Three things change in AAI 26.0.0 that affect how the product is reached over the network and how its certificates work.
Read this before or after upgrading from AAI 24.4.x or earlier, whether you use HTTPS today or are considering enabling it for the first time.
New to certificate terminology? This article uses terms like certificate authority, keystore/truststore, and mTLS without redefining them.
See: AAI Glossary — Terms Used in the 26.0.0 Upgrade Documentation
Where the customer-facing TLS handshake terminates — confirmed, not a default you need to guess at:
out of the box, the gateway's own TLS is disabled and the Route (OpenShift) or Ingress (Kubernetes) in front of it uses edge termination, or has no TLS configured at all.
This means client certificates never reach the gateway by default — only plain HTTP does.
If your cluster is running this default configuration, client-certificate-authenticated connectors (§5) simply aren't part of your setup, and neither is anything else in this article that depends on the gateway seeing a client certificate directly.
For that to work at all, someone has to have deliberately switched the Route/Ingress to passthrough mode and enabled the gateway's own TLS — check for both before assuming either the VM-style steps or "it's someone else's problem" apply to you.
Not applicable. This article explains architectural changes to ports, HTTPS, and certificates in AAI 26.0.0, not a resolution to a specific reported problem.
keytool on your PATH (§3). This ships with any JDK. Check with keytool -version (identical command on Linux and Windows). If it's not recognized, either add your JDK's bin directory to your PATH, keytool by its full path instead.openssl (§7). Most Linux distributions include it by default — confirm with openssl version. Windows does not include it by default, though you may already have one: openssl.exe typically comes with it (check with Get-Command openssl in PowerShell before installing anything new).curl (§8). Included by default on Windows 10/11 and macOS, and on most Linux distributions; if missing on Linux, install it through your distribution's package manager (apt install curl, yum install curl, etc.).helm and kubectl/oc already configured against the correct cluster and namespace — confirm with helm version and kubectl config current-context (or oc whoami).<install> or <your-configuration-directory> throughout) and, on Kubernetes/OpenShift, your Helm release name and namespace.| Port | What answers there in 26.0.0 | What answered there before (24.4.x) | Needs a client certificate? |
|---|---|---|---|
| Your existing HTTP/HTTPS port (8080/8443 by default) | The new Frontend Gateway | AAI application directly | No |
| A new internal-only port (8081 by default) | AAI application (moved here) | — | No — not externally reachable |
| A new internal-only mTLS port (4443 by default) — mTLS means both sides of the connection prove their identity with a certificate, not just the server | AAI application, internal service traffic | Present but unused | Yes — internal only, automatic |
| Config Tool / Webswing port(s) | Same as before | Same | Only if you had this configured |
| Ports for individual services (AI Insights, Denormalizer, MCP, Automation AI, connectors, etc.) | New — these are new 26.0.0 services | Not present | Varies by service; automatic |
The important part: the port your users type into a browser today keeps working after the upgrade. The upgrade process reads your existing configuration and gives the new Frontend Gateway the exact same port your browser already uses
— whether that's the default or a custom port you chose. Nothing on your side needs to change for existing bookmarks, firewall rules, or monitoring to keep working.
A quirk to be aware of: if you request the bare root path or /v2 on your existing port, you may see a plain placeholder response instead of the AAI login page. This isn't a broken install — it's a leftover of the new gateway component.
Use your normal AAI URL (ending in /aai) and everything behaves as expected.
Verify current port defaults against your installed build.
The port numbers above are the 26.0.0 defaults; always confirm the actual values against your own installed configuration rather than assuming they match this table exactly, since defaults can shift between releases.
26.0.0 uses three separate certificate authorities that never share trust material:
If you ever see documentation or diagrams referring to more than one certificate authority, this is what that means — it's expected, not an error.
The rule to remember: your gateway's own certificate never signs your integrations' certificates, and vice versa
— they come from two completely independent authorities.
This section applies to VM/traditional-installer upgrades only. If you run AAI on Kubernetes/OpenShift via Helm, the gateway's own certificate isn't touched by this upgrade path at all — see the callout at the end of this section for what to check instead.
If your existing VM installation has HTTPS enabled, the upgrade carries your current certificate forward exactly as-is — same file, same private key, same content.
It is not used to sign a new certificate, and it does not need to be a certificate-authority certificate.
There is no longer a certificate-authority requirement to satisfy before upgrading, regardless of which prior version you're upgrading from.
Action before your upgrade window: confirm your current certificate includes the Subject Alternative Names (SANs) it needs — the hostnames and/or IP addresses your users and integrations actually use to reach it.
This matters more after this upgrade than it used to: earlier upgrade behavior minted a brand-new certificate that could paper over a missing SAN on the original.
Now your original certificate is served exactly as it is, so a missing SAN becomes a real, visible browser warning or connection failure after the upgrade, not something the upgrade covers for you.
Linux:
keytool -list -v -keystore <your-keystore-file>.p12 -storetype PKCS12 -storepass <your-keystore-password> \
| grep -A5 -i "SubjectAlternativeName"Windows (Command Prompt — findstr can't show the surrounding context lines; use the PowerShell form below if you need the full block):
keytool -list -v -keystore <your-keystore-file>.p12 -storetype PKCS12 -storepass <your-keystore-password> ^
| findstr /i "SubjectAlternativeName"Windows (PowerShell — shows the surrounding lines, closer to the Linux output):
keytool -list -v -keystore <your-keystore-file>.p12 -storetype PKCS12 -storepass <your-keystore-password> `
| Select-String -Pattern "SubjectAlternativeName" -Context 0,5Example output (what you want to see):
SubjectAlternativeName [
DNSName: myaai.example.com
IPAddress: 10.20.30.40
]How to read it: you should see an entry for every hostname (DNSName) and/or IP address (IPAddress) your users or integrations use to reach this install.
If the block is missing entirely, or is missing an address you rely on, get an updated certificate from whoever manages your organization's certificates before your upgrade window
— this isn't something the upgrade can fix for you afterward without reissuing the certificate.
On Kubernetes/OpenShift instead: none of the above applies — the gateway's own certificate isn't touched by this upgrade path at all. Confirm your external TLS termination independently
— check your Route/Ingress configuration for whether it uses the cluster's router wildcard certificate or a TLS secret you supplied, and confirm that secret/certificate directly rather than looking for anything on the Frontend Gateway itself.
This section applies to VM/installer upgrades. When you upgrade a VM installation from 24.4.x or earlier with HTTPS already configured, the upgrader:
You don't need to do anything for this part — it happens during the upgrade itself.
This applies whenever the Frontend Gateway itself is the thing validating a connector's client certificate — which is always true on a VM install. On Kubernetes/OpenShift, this is not the default — the gateway's own TLS ships disabled, and the Route/Ingress in front of it defaults to edge termination (or no TLS at all), so client certificates never reach the gateway out of the box. If your cluster is running that default configuration, this section doesn't apply to you: your connectors aren't authenticating with a client certificate against this gateway at all. It only applies if someone has deliberately reconfigured the Route/Ingress to passthrough mode and enabled the gateway's own TLS — confirm that setup exists before treating the steps below as relevant.
Whichever applies: the certificate migration or setup covered above only ever covers the gateway's own certificate — it does not reissue certificates for anything that connects to the gateway.
If any of your integrations authenticate with a client certificate, every existing one will stop working immediately after the upgrade, because integrations are now validated against a new, separate certificate authority the upgrade generates for this purpose — unrelated to your gateway's own certificate, which does not change. You will need to:
Plan for this as a same-maintenance-window task, not a follow-up — integrations will be down between the upgrade completing and this step finishing. See Connector/Integration Impact of Upgrading AAI to 26.0.0 (Additional Information) for the exact regeneration steps.
On a VM/traditional installer install: HTTPS is not turned on by the installer — it's a deliberate, manual post-install procedure. In short, it involves:
Follow the official 26.0.0 configuration procedure for the exact commands — the sequence and required fields are documented there in full,
including which output files are safe to distribute to other teams (public certificate only) versus which must stay restricted (anything containing a private key).
On Kubernetes/OpenShift: the gateway runs here too
— this isn't a VM-only component
— but this specific procedure doesn't apply the same way, and the default configuration doesn't need it at all.
Out of the box, the gateway's own TLS is disabled and browser-facing HTTPS is handled entirely by the Route (OpenShift) or Ingress (Kubernetes) in front of it
— a router wildcard certificate or a TLS secret you supply there, unrelated to anything in this procedure.
If that's your setup, there's nothing to configure on the gateway itself for ordinary HTTPS.
This procedure only becomes relevant if you specifically need connectors to authenticate with client certificates directly against the gateway
— which requires deliberately switching the Route/Ingress to passthrough mode and enabling the gateway's own TLS, neither of which happens by default.
Confirm that's genuinely what you're trying to do before assuming the VM steps above apply.
Certificate validity periods you may see quoted in different places (training material, older documentation, etc.) are inconsistent with each other and with what any given install actually has.
Rather than relying on a quoted number, check your own certificate directly:
Linux:
for p12 in <your-configuration-directory>/*.p12; do
echo "== $p12"
openssl pkcs12 -in "$p12" -nokeys -passin pass:<your-keystore-password> 2>/dev/null \
| openssl x509 -noout -subject -enddate
doneWindows (PowerShell — requires openssl on your PATH; install Git for Windows or a standalone OpenSSL build if it isn't already):
Get-ChildItem "<your-configuration-directory>\*.p12" | ForEach-Object {
Write-Host "== $($_.FullName)"
openssl pkcs12 -in $_.FullName -nokeys -passin pass:<your-keystore-password> 2>$null `
| openssl x509 -noout -subject -enddate
}This also works from a live TLS handshake — the certificate's actual expiration is always logged as part of a successful connection.
http:// or https:// — the port is the first thing to confirm. curl -s -o /dev/null -w '%{http_code} gateway\n' http://<host>:<your-gateway-port>/aai/api/version
curl -s -o /dev/null -w '%{http_code} server\n' http://<host>:8081/aai/api/version(This works the same on Linux, macOS, and Windows — curl has shipped built into Windows 10/11 by default since 2018.) A 200 from one and something else404, connection refused, timeout) from the other tells you immediately which side of the gateway boundary the problem is on.http:// means internal certificates aren't active yet; https:// means they are).