The FIPS 140-3 distribution ships as a separate package, so there is no in-place upgrade from a FIPS 140-2 install.
Plan the transition as a fresh install of the FIPS 140-3 package on a supported Kong Gateway version, including preparation of your upstreams, clients, and stored configuration to match the tighter FIPS 140-3 boundary.
Before migrating to FIPS 140-3, review existing legacy configurations and prepare for the transition.
The FIPS 140-3 package doesn’t silently rewrite legacy stored artifacts, and it fails closed on configuration that references non-approved algorithms. Before enabling it, inventory the following:
|
Area
|
What to check
|
|
Peers on Kong’s TLS surface
|
Inbound clients and outbound upstream services. Any peer that doesn’t support TLS 1.2 with Extended Master Secret (EMS, RFC 7627) or TLS 1.3 will fail during the handshake.
|
|
Cipher configurations
|
Remove custom ssl_ciphers values and any *_ssl_conf_command overrides. The FIPS 140-3 package pins TLS 1.2 / 1.3 with approved AES-GCM profiles.
|
|
Plugin configuration
|
Referencing non-approved algorithms such as SAML request signatures, HMAC-Auth secrets, JWT Signer/JOSE/JWA algorithm choices, and any plugin still selecting SHA-1 or MD5.
|
|
Keyring
|
RSA transport keys smaller than 2048 bits must be rotated. Legacy AES-GCM exports created without an authentication tag remain importable via the explicit legacy path but must be re-exported afterward.
|
key-auth-enc credentials
|
Plan a batched PATCH or POST on each credential so it is re-hashed as SHA-256. Existing SHA-1 credentials keep working (read-only), but new credentials must be SHA-256.
|
The following are rejected outright when the FIPS 140-3 package runs with fips = on:
|
Rejected item
|
Details
|
|
TLS 1.0 and 1.1
|
Rejected at any surface Kong terminates.
|
|
TLS 1.2 without EMS
|
The handshake fails.
|
|
Non-AES-GCM cipher suites
|
The cipher list is fixed to approved AES-GCM profiles. Low-level SSL overrides no longer widen it.
|
|
MD5 and ChaCha20
|
Rejected under default OpenSSL properties.
|
|
SAML request SHA-1 signatures
|
Rejected.
|
|
HMAC-SHA1 authentication configuration
|
Rejected.
|
|
Ed25519 / Ed448 JWKS generation
|
Use RSA-PSS or a NIST-curve ECDSA key (for example P-256, P-384) instead.
|
|
Application-supplied IVs for AES-GCM
|
The FIPS provider generates the IV inside the cryptographic boundary.
|
|
Keyring RSA keys below 2048 bits
|
Rejected at configuration validation, before startup completes.
|
hash_secret = true on the OAuth2 plugin
|
The setting is disabled in FIPS mode. Use secrets management or database encryption instead.
|
-
Download and install a Kong Gateway FIPS 140-3 package on a supported OS.
The FIPS 140-3 package name and download URL use a -fips-140-3 suffix. For links to the correct package for your distribution, see the Kong Gateway install page, or see the FIPS 140-3 packages on Docker Hub.
Note: Currently, the FIPS 140-3 package is only available on Kong Gateway 3.14 LTS.
- Confirm
fips = on in kong.conf or set KONG_FIPS=on as an environment variable.
- Restart Kong Gateway.
-
Verify the loaded provider using the Admin API:
curl -s http://localhost:8001/fips-status
- Verify that your clients are working as expected with your new installation of Kong Gateway.