Skip to Main Content
Integration


This is an IBM Automation portal for Integration products. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.


Status Submitted
Workspace DataPower Gateway
Created by Guest
Created on Jul 13, 2026

Add ALPN (Application-Layer Protocol Negotiation) support for client-side / outbound TLS connections

Description:

What is the idea?
Add support for the ALPN TLS extension (RFC 7301) on client-side (outbound) TLS connections initiated by the firmware, so that the appliance can negotiate the application protocol (e.g., HTTP/2 "h2", HTTP/1.1 "http/1.1") with backend servers during the TLS handshake. Currently, ALPN is only supported on server-side (inbound) connections, and there is no configuration option to advertise ALPN protocol identifiers in the ClientHello when the appliance acts as a TLS client.

Why is it useful?
A growing number of backend services, cloud APIs, and load balancers (e.g., AWS ALB, GCP load balancers, gRPC endpoints, modern API gateways) require ALPN to select the correct protocol, and some reject or downgrade TLS connections that do not include the ALPN extension. Without client-side ALPN support:

  • The appliance cannot establish HTTP/2 or gRPC connections to backends that select the protocol via ALPN.
  • Connections to endpoints that mandate ALPN fail outright or fall back to HTTP/1.1, causing integration failures or degraded performance.
  • Customers are forced to insert additional intermediary components solely to perform protocol negotiation, adding cost, latency, and operational complexity.

Who benefits?
All customers using the appliance as a TLS client toward modern backends — particularly those integrating with cloud-native services, gRPC/HTTP/2 APIs, and third-party endpoints that enforce ALPN. This is increasingly a baseline interoperability requirement rather than an optional optimization.

Suggested implementation:
Provide a configurable list of ALPN protocol identifiers on the TLS client profile (analogous to existing server-side ALPN configuration), advertised in the ClientHello, with the negotiated protocol honored for the upstream connection and visible in logs/probes for troubleshooting.

Use case example:
Organization needs to route traffic through the appliance to a backend service that requires ALPN negotiation of "h2". Because the appliance omits the ALPN extension on outbound TLS, the backend rejects the handshake, blocking the integration. There is no supported workaround within the product today.

Business impact:
Blocking issue for integrations with ALPN-mandatory endpoints; risk of project delays and additional infrastructure costs for workaround components. Requested priority: High.

Idea priority Urgent
  • Guest
    Jul 15, 2026

    To emphasize why this is a blocking limitation rather than an optimization: ALPN is not optional for HTTP/2 over TLS.

    RFC 9113 (HTTP/2, obsoleting RFC 7540) requires that a client making an HTTP/2 connection over TLS use ALPN (RFC 7301) with the protocol identifier "h2". There is no other standardized mechanism to establish an "h2" connection over TLS — protocol negotiation must happen in the TLS handshake itself. A TLS client that omits the ALPN extension therefore cannot, by specification, speak HTTP/2 to a TLS-protected backend at all.

    The practical consequence for DataPower: as long as outbound TLS connections cannot advertise ALPN in the ClientHello, HTTP/2 and gRPC (which runs over HTTP/2) to any spec-compliant TLS backend is structurally impossible from the appliance — it is not a matter of the backend being overly strict. Backends that require ALPN (AWS ALB with gRPC/HTTP/2 target groups, GCP load balancers, most gRPC servers) will either reject the handshake with a no_application_protocol alert or silently downgrade to HTTP/1.1, breaking gRPC entirely.

    Given that this is a hard protocol requirement defined by the IETF standards themselves (RFC 7301 + RFC 9113), client-side ALPN support should be treated as a baseline interoperability requirement, not an enhancement. Requesting this be high prioritized accordingly.

  • Guest
    Jul 15, 2026

    RFC 7301 defines ALPN (Application-Layer Protocol Negotiation), a TLS extension published by the IETF in July 2014.

    The problem it solves: when a client connects to a server over TLS, both sides may support multiple application protocols on the same port (for example, HTTP/1.1 and HTTP/2 on port 443). Without a negotiation mechanism, they'd need extra round trips after the TLS handshake to figure out which protocol to speak.

    How it works: the client includes an ALPN extension in its TLS ClientHello listing the protocols it supports, in order of preference (e.g. "h2", "http/1.1"). The server picks one and returns its choice in the ServerHello. The negotiation happens inside the TLS handshake itself, so no additional round trips are needed, and the chosen protocol is established by the time the handshake completes. If the server supports none of the client's protocols, it can abort with a "no_application_protocol" alert.

    Some context worth knowing:

    • ALPN replaced NPN (Next Protocol Negotiation), an earlier Google-designed extension used with SPDY. A key difference is that in ALPN the server makes the final protocol selection rather than the client, and the choice is sent in the clear (though in TLS 1.3 the server's extensions are encrypted).
    • Its most important use case is HTTP/2: browsers require ALPN to negotiate h2 over TLS. It's also used for HTTP/3 negotiation signaling, gRPC, and other protocols.
    • Protocol identifiers are registered with IANA in the "TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs" registry.

    The authors were Stephan Friedl, Andrei Popov, Adam Langley, and Emile Stephan. If you want the full text, it's at https://www.rfc-editor.org/rfc/rfc7301.