Skip to main content
Question

GCP Cloud NGFW issued TLS certificates don't have AKID extension

  • Sep 17, 2026 5:30 AM UTC
  • 1 reply
  • 29 views

Seethaar
Forum|alt.badge.img+1

We noticed that the GCP Cloud NGFW Enterprise endpoints issue impersonation certificates without AKID extension. This violates

https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.1

While Cloud NGFW is claimed to be powered by Palo Alto networks (https://www.paloaltonetworks.com/blog/2024/04/google-cloud-ngfw-enterprise/), we see the Palo Alto Firewall exhibit the RFC compliant behaviour.

What does this break?

Python 3.13, https://docs.python.org/3/library/ssl.html#ssl.create_default_context. Although we can work around this problem by disabling strict checks, it would be prudent for GCP to address this gap on priority in the interest of a long term solution.

Steps to reproduce:

Python 3.13.15 (main, Aug 6 2026, 11:06:22) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>> import socket
>>> hostname = "api.github.com"
>>> port = 44
>>> port = 443
>>> context = ssl.create_default_context()
>>> try:
... with socket.create_connection((hostname, port), timeout=10) as sock:
... with context.wrap_socket(sock, server_hostname=hostname) as ssock:
... print("SSL handshake succeeded")
... print("TLS version:", ssock.version())
... print("Cipher:", ssock.cipher())
... cert = ssock.getpeercert()
... print("Peer cert subject:", cert.get("subject"))
... print("Peer cert issuer:", cert.get("issuer"))
... except ssl.SSLCertVerificationError as e:
... print("CERT VERIFICATION FAILED:", e)
... except ssl.SSLError as e:
... print("SSL ERROR:", e)
... except Exception as e:
... print("OTHER ERROR (may be network/proxy, not TLS):", type(e).__name__, e)
...
CERT VERIFICATION FAILED: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Missing Authority Key Identifier (_ssl.c:1032)
>>> context.verify_flags &= ~ssl.VERIFY_X509_STRICT
>>> try:
... with socket.create_connection((hostname, port), timeout=10) as sock:
... with context.wrap_socket(sock, server_hostname=hostname) as ssock:
... print("SSL handshake succeeded")
... print("TLS version:", ssock.version())
... print("Cipher:", ssock.cipher())
... cert = ssock.getpeercert()
... print("Peer cert subject:", cert.get("subject"))
... print("Peer cert issuer:", cert.get("issuer"))
... except ssl.SSLCertVerificationError as e:
... print("CERT VERIFICATION FAILED:", e)
... except ssl.SSLError as e:
... print("SSL ERROR:", e)
... except Exception as e:
... print("OTHER ERROR (may be network/proxy, not TLS):", type(e).__name__, e)
...
SSL handshake succeeded
TLS version: TLSv1.3
Cipher: ('TLS_AES_256_GCM_SHA384', 'TLSv1.3', 256)
Peer cert subject: ((('commonName', '*.github.com'),),)
Peer cert issuer: ((('commonName', 'Google Cloud Firewall Intermediate CA ID# [removed by moderator] 35431'),),)

1 reply

ErikaB
Community Manager
Forum|alt.badge.img+13
  • Community Manager
  • Sep 17, 2026 3:32 PM UTC

Hi ​@Seethaar 

 

Since your question is about GCP Cloud NGFW Enterprise endpoints it's best to post it in the Google Developers Community. That community is full of developers who have expertise with this specific topic and can provide the technical guidance you need.

 

For future reference, our community is focused specifically on Google Cloud Security products, such as Google Security Operations, Google Threat Intelligence, Mandiant, and Security Command Center. We're always here to help with questions related to those products.