<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Security on Envoy Gateway</title><link>/v1.3/tasks/security/</link><description>Recent content in Security on Envoy Gateway</description><generator>Hugo</generator><language>en</language><atom:link href="/v1.3/tasks/security/index.xml" rel="self" type="application/rss+xml"/><item><title>Accelerating TLS Handshakes using Private Key Provider in Envoy</title><link>/v1.3/tasks/security/private-key-provider/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/private-key-provider/</guid><description>&lt;p&gt;TLS operations can be accelerated or the private key can be protected using specialized hardware. This can be leveraged in Envoy using &lt;a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/transport_sockets/tls/v3/common.proto#extensions-transport-sockets-tls-v3-privatekeyprovider"&gt;Envoy Private Key Provider&lt;/a&gt; is added to Envoy.&lt;/p&gt;
&lt;p&gt;Today, there are two private key providers implemented in Envoy as contrib extensions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/private_key_providers/qat/v3alpha/qat.proto#extensions-private-key-providers-qat-v3alpha-qatprivatekeymethodconfig"&gt;QAT in Envoy 1.24 release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/private_key_providers/cryptomb/v3alpha/cryptomb.proto"&gt;CryptoMB in Envoy 1.20 release&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both of them are used to accelerate the TLS handshake through the hardware capabilities.&lt;/p&gt;
&lt;p&gt;This task will walk you through the steps required to configure TLS Termination mode for TCP traffic while also using the Envoy Private Key Provider to accelerate the TLS handshake by leveraging QAT and the HW accelerator available on Intel SPR/EMR Xeon server platforms.&lt;/p&gt;</description></item><item><title>API Key Authentication</title><link>/v1.3/tasks/security/apikey-auth/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/apikey-auth/</guid><description>&lt;p&gt;This task provides instructions for configuring API Key Authentication.
API Key Authentication verifies whether an incoming request includes a valid API key in the header, parameter, or cookie before routing the request to
a backend service.&lt;/p&gt;
&lt;p&gt;Envoy Gateway introduces a new CRD called &lt;a href="/contributions/design/security-policy/"&gt;SecurityPolicy&lt;/a&gt; that allows the user to configure Api Key
authentication.
This instantiated resource can be linked to a &lt;a href="https://gateway-api.sigs.k8s.io/api-types/gateway"&gt;Gateway&lt;/a&gt;, &lt;a href="https://gateway-api.sigs.k8s.io/api-types/httproute"&gt;HTTPRoute&lt;/a&gt; or &lt;a href="https://gateway-api.sigs.k8s.io/api-types/grpcroute"&gt;GRPCRoute&lt;/a&gt; resource.&lt;/p&gt;



&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Follow the steps below to install Envoy Gateway and the example manifest. Before
proceeding, you should be able to query the example backend using HTTP.&lt;/p&gt;</description></item><item><title>Backend Mutual TLS: Gateway to Backend</title><link>/v1.3/tasks/security/backend-mtls/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/backend-mtls/</guid><description>&lt;p&gt;This task demonstrates how mTLS can be achieved between the Gateway and a backend.
This task uses a self-signed CA, so it should be used for testing and demonstration purposes only.&lt;/p&gt;
&lt;p&gt;Envoy Gateway supports the Gateway-API defined &lt;a href="https://gateway-api.sigs.k8s.io/api-types/backendtlspolicy/"&gt;BackendTLSPolicy&lt;/a&gt; to establish TLS. For mTLS, the Gateway must authenticate by presenting a client certificate to the backend.&lt;/p&gt;



&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;OpenSSL to generate TLS assets.&lt;/li&gt;
&lt;/ul&gt;



&lt;h2 id="installation"&gt;Installation&lt;a class="td-heading-self-link" href="#installation" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Follow the steps from the &lt;a href="/v1.3/tasks/security/backend-tls/"&gt;Backend TLS&lt;/a&gt; to install Envoy Gateway and configure TLS to the backend server.&lt;/p&gt;</description></item><item><title>Backend TLS: Gateway to Backend</title><link>/v1.3/tasks/security/backend-tls/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/backend-tls/</guid><description>&lt;p&gt;This task demonstrates how TLS can be achieved between the Gateway and a backend.
This task uses a self-signed CA, so it should be used for testing and demonstration purposes only.&lt;/p&gt;
&lt;p&gt;Envoy Gateway supports the Gateway-API defined &lt;a href="https://gateway-api.sigs.k8s.io/api-types/backendtlspolicy/"&gt;BackendTLSPolicy&lt;/a&gt;.&lt;/p&gt;



&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;OpenSSL to generate TLS assets.&lt;/li&gt;
&lt;/ul&gt;



&lt;h2 id="installation"&gt;Installation&lt;a class="td-heading-self-link" href="#installation" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Follow the steps below to install Envoy Gateway and the example manifest. Before
proceeding, you should be able to query the example backend using HTTP.&lt;/p&gt;</description></item><item><title>Basic Authentication</title><link>/v1.3/tasks/security/basic-auth/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/basic-auth/</guid><description>&lt;p&gt;This task provides instructions for configuring &lt;a href="https://tools.ietf.org/html/rfc2617"&gt;HTTP Basic authentication&lt;/a&gt;.
HTTP Basic authentication checks if an incoming request has a valid username and password before routing the request to
a backend service.&lt;/p&gt;
&lt;p&gt;Envoy Gateway introduces a new CRD called &lt;a href="/contributions/design/security-policy/"&gt;SecurityPolicy&lt;/a&gt; that allows the user to configure HTTP Basic
authentication.
This instantiated resource can be linked to a &lt;a href="https://gateway-api.sigs.k8s.io/api-types/gateway"&gt;Gateway&lt;/a&gt;, &lt;a href="https://gateway-api.sigs.k8s.io/api-types/httproute"&gt;HTTPRoute&lt;/a&gt; or &lt;a href="https://gateway-api.sigs.k8s.io/api-types/grpcroute"&gt;GRPCRoute&lt;/a&gt; resource.&lt;/p&gt;



&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Follow the steps below to install Envoy Gateway and the example manifest. Before
proceeding, you should be able to query the example backend using HTTP.&lt;/p&gt;</description></item><item><title>CORS</title><link>/v1.3/tasks/security/cors/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/cors/</guid><description>&lt;p&gt;This task provides instructions for configuring &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS"&gt;Cross-Origin Resource Sharing (CORS)&lt;/a&gt; on Envoy Gateway.
CORS defines a way for client web applications that are loaded in one domain to interact with resources in a different
domain.&lt;/p&gt;
&lt;p&gt;Envoy Gateway introduces a new CRD called &lt;a href="/contributions/design/security-policy/"&gt;SecurityPolicy&lt;/a&gt; that allows the user to configure CORS.
This instantiated resource can be linked to a &lt;a href="https://gateway-api.sigs.k8s.io/api-types/gateway"&gt;Gateway&lt;/a&gt;, &lt;a href="https://gateway-api.sigs.k8s.io/api-types/httproute"&gt;HTTPRoute&lt;/a&gt; or &lt;a href="https://gateway-api.sigs.k8s.io/api-types/grpcroute"&gt;GRPCRoute&lt;/a&gt; resource.&lt;/p&gt;



&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Follow the steps below to install Envoy Gateway and the example manifest. Before
proceeding, you should be able to query the example backend using HTTP.&lt;/p&gt;</description></item><item><title>External Authorization</title><link>/v1.3/tasks/security/ext-auth/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/ext-auth/</guid><description>&lt;p&gt;This task provides instructions for configuring external authentication.&lt;/p&gt;
&lt;p&gt;External authorization calls an external HTTP or gRPC service to check whether an incoming HTTP request is authorized
or not. If the request is deemed unauthorized, then the request will be denied with a 403 (Forbidden) response. If the
request is authorized, then the request will be allowed to proceed to the backend service.&lt;/p&gt;
&lt;p&gt;Envoy Gateway introduces a new CRD called &lt;a href="/contributions/design/security-policy/"&gt;SecurityPolicy&lt;/a&gt; that allows the user to configure external authorization.
This instantiated resource can be linked to a &lt;a href="https://gateway-api.sigs.k8s.io/api-types/gateway"&gt;Gateway&lt;/a&gt; and &lt;a href="https://gateway-api.sigs.k8s.io/api-types/httproute"&gt;HTTPRoute&lt;/a&gt; resource.&lt;/p&gt;</description></item><item><title>IP Allowlist/Denylist</title><link>/v1.3/tasks/security/restrict-ip-access/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/restrict-ip-access/</guid><description>&lt;p&gt;This task provides instructions for configuring IP allowlist/denylist on Envoy Gateway. IP allowlist/denylist
checks if an incoming request is from an allowed IP address before routing the request to a backend service.&lt;/p&gt;
&lt;p&gt;Envoy Gateway introduces a new CRD called &lt;a href="/contributions/design/security-policy/"&gt;SecurityPolicy&lt;/a&gt; that allows the user to configure IP allowlist/denylist.
This instantiated resource can be linked to a &lt;a href="https://gateway-api.sigs.k8s.io/api-types/gateway"&gt;Gateway&lt;/a&gt;, &lt;a href="https://gateway-api.sigs.k8s.io/api-types/httproute"&gt;HTTPRoute&lt;/a&gt; or &lt;a href="https://gateway-api.sigs.k8s.io/api-types/grpcroute"&gt;GRPCRoute&lt;/a&gt; resource.&lt;/p&gt;



&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Follow the steps below to install Envoy Gateway and the example manifest. Before
proceeding, you should be able to query the example backend using HTTP.&lt;/p&gt;</description></item><item><title>JWT Authentication</title><link>/v1.3/tasks/security/jwt-authentication/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/jwt-authentication/</guid><description>&lt;p&gt;This task provides instructions for configuring &lt;a href="https://tools.ietf.org/html/rfc7519"&gt;JSON Web Token (JWT)&lt;/a&gt; authentication. JWT authentication checks
if an incoming request has a valid JWT before routing the request to a backend service. Currently, Envoy Gateway only
supports validating a JWT from an HTTP header, e.g. &lt;code&gt;Authorization: Bearer &amp;lt;token&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Envoy Gateway introduces a new CRD called &lt;a href="/contributions/design/security-policy/"&gt;SecurityPolicy&lt;/a&gt; that allows the user to configure JWT authentication.
This instantiated resource can be linked to a &lt;a href="https://gateway-api.sigs.k8s.io/api-types/gateway"&gt;Gateway&lt;/a&gt;, &lt;a href="https://gateway-api.sigs.k8s.io/api-types/httproute"&gt;HTTPRoute&lt;/a&gt; or &lt;a href="https://gateway-api.sigs.k8s.io/api-types/grpcroute"&gt;GRPCRoute&lt;/a&gt; resource.&lt;/p&gt;</description></item><item><title>JWT Claim-Based Authorization</title><link>/v1.3/tasks/security/jwt-claim-authorization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/jwt-claim-authorization/</guid><description>&lt;p&gt;This task provides instructions for configuring JWT claim-based authorization. JWT claim-based authorization checks if an incoming request has the required JWT claims before routing the request to a backend service.&lt;/p&gt;
&lt;p&gt;Envoy Gateway introduces a new CRD called &lt;a href="/contributions/design/security-policy/"&gt;SecurityPolicy&lt;/a&gt; that allows the user to configure JWT claim-based authorization.&lt;/p&gt;
&lt;p&gt;This instantiated resource can be linked to a &lt;a href="https://gateway-api.sigs.k8s.io/api-types/gateway"&gt;Gateway&lt;/a&gt;, &lt;a href="https://gateway-api.sigs.k8s.io/api-types/httproute"&gt;HTTPRoute&lt;/a&gt; or &lt;a href="https://gateway-api.sigs.k8s.io/api-types/grpcroute"&gt;GRPCRoute&lt;/a&gt; resource.&lt;/p&gt;



&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Follow the steps below to install Envoy Gateway and the example manifest. Before
proceeding, you should be able to query the example backend using HTTP.&lt;/p&gt;</description></item><item><title>Mutual TLS: External Clients to the Gateway</title><link>/v1.3/tasks/security/mutual-tls/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/mutual-tls/</guid><description>&lt;p&gt;This task demonstrates how mutual TLS can be achieved between external clients and the Gateway.
This task uses a self-signed CA, so it should be used for testing and demonstration purposes only.&lt;/p&gt;



&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;OpenSSL to generate TLS assets.&lt;/li&gt;
&lt;/ul&gt;



&lt;h2 id="installation"&gt;Installation&lt;a class="td-heading-self-link" href="#installation" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Follow the steps below to install Envoy Gateway and the example manifest. Before
proceeding, you should be able to query the example backend using HTTP.&lt;/p&gt;</description></item><item><title>OIDC Authentication</title><link>/v1.3/tasks/security/oidc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/oidc/</guid><description>&lt;p&gt;This task provides instructions for configuring &lt;a href="https://openid.net/connect/"&gt;OpenID Connect (OIDC)&lt;/a&gt; authentication.
OpenID Connect (OIDC) is an authentication standard built on top of OAuth 2.0.
It enables EG to rely on authentication that is performed by an OpenID Connect Provider (OP)
to verify the identity of a user.&lt;/p&gt;
&lt;p&gt;Envoy Gateway introduces a new CRD called &lt;a href="../../../api/extension_types#securitypolicy"&gt;SecurityPolicy&lt;/a&gt; that allows the user to configure OIDC
authentication.
This instantiated resource can be linked to a &lt;a href="https://gateway-api.sigs.k8s.io/api-types/gateway"&gt;Gateway&lt;/a&gt; and &lt;a href="https://gateway-api.sigs.k8s.io/api-types/httproute"&gt;HTTPRoute&lt;/a&gt; resource.&lt;/p&gt;</description></item><item><title>Secure Gateways</title><link>/v1.3/tasks/security/secure-gateways/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/secure-gateways/</guid><description>&lt;p&gt;This task will help you get started using secure Gateways.
This task uses a self-signed CA, so it should be used for testing and demonstration purposes only.&lt;/p&gt;



&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;OpenSSL to generate TLS assets.&lt;/li&gt;
&lt;/ul&gt;



&lt;h2 id="installation"&gt;Installation&lt;a class="td-heading-self-link" href="#installation" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Follow the steps below to install Envoy Gateway and the example manifest. Before
proceeding, you should be able to query the example backend using HTTP.&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;Expand for instructions&lt;/summary&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Install the Gateway API CRDs and Envoy Gateway using Helm:&lt;/p&gt;</description></item><item><title>Threat Model</title><link>/v1.3/tasks/security/threat-model/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/threat-model/</guid><description>&lt;h1 id="envoy-gateway-threat-model-and-end-user-recommendations"&gt;Envoy Gateway Threat Model and End User Recommendations&lt;a class="td-heading-self-link" href="#envoy-gateway-threat-model-and-end-user-recommendations" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h1&gt;




&lt;h2 id="about"&gt;About&lt;a class="td-heading-self-link" href="#about" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This work was performed by &lt;a href="https://control-plane.io/"&gt;ControlPlane&lt;/a&gt; and commissioned by the &lt;a href="https://www.linuxfoundation.org/"&gt;Linux Foundation&lt;/a&gt;. ControlPlane is a global cloud native and open source cybersecurity consultancy, trusted as the partner of choice in securing: multinational banks; major public clouds; international financial institutions; critical national infrastructure programs; multinational oil and gas companies, healthcare and insurance providers; and global media firms.&lt;/p&gt;



&lt;h2 id="threat-modelling-team"&gt;Threat Modelling Team&lt;a class="td-heading-self-link" href="#threat-modelling-team" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;James Callaghan, Torin van den Bulk, Eduardo Olarte&lt;/p&gt;</description></item><item><title>TLS Passthrough</title><link>/v1.3/tasks/security/tls-passthrough/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/tls-passthrough/</guid><description>&lt;p&gt;This task will walk through the steps required to configure TLS Passthrough via Envoy Gateway. Unlike configuring
Secure Gateways, where the Gateway terminates the client TLS connection, TLS Passthrough allows the application itself
to terminate the TLS connection, while the Gateway routes the requests to the application based on SNI headers.&lt;/p&gt;



&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;OpenSSL to generate TLS assets.&lt;/li&gt;
&lt;/ul&gt;



&lt;h2 id="installation"&gt;Installation&lt;a class="td-heading-self-link" href="#installation" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Follow the steps below to install Envoy Gateway and the example manifest. Before
proceeding, you should be able to query the example backend using HTTP.&lt;/p&gt;</description></item><item><title>TLS Termination for TCP</title><link>/v1.3/tasks/security/tls-termination/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/tls-termination/</guid><description>&lt;p&gt;This task will walk through the steps required to configure TLS Terminate mode for TCP traffic via Envoy Gateway.
This task uses a self-signed CA, so it should be used for testing and demonstration purposes only.&lt;/p&gt;



&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;OpenSSL to generate TLS assets.&lt;/li&gt;
&lt;/ul&gt;



&lt;h2 id="installation"&gt;Installation&lt;a class="td-heading-self-link" href="#installation" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Follow the steps below to install Envoy Gateway and the example manifest. Before
proceeding, you should be able to query the example backend using HTTP.&lt;/p&gt;</description></item><item><title>Using cert-manager For TLS Termination</title><link>/v1.3/tasks/security/tls-cert-manager/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/v1.3/tasks/security/tls-cert-manager/</guid><description>&lt;p&gt;This task shows how to set up &lt;a href="https://cert-manager.io/"&gt;cert-manager&lt;/a&gt; to automatically create certificates and secrets for use by Envoy Gateway.
It will first show how to enable the self-sign issuer, which is useful to test that cert-manager and Envoy Gateway can talk to each other.
Then it shows how to use &lt;a href="https://letsencrypt.org/docs/staging-environment/"&gt;Let&amp;rsquo;s Encrypt&amp;rsquo;s staging environment&lt;/a&gt;.
Changing to the Let&amp;rsquo;s Encrypt production environment is straight-forward after that.&lt;/p&gt;



&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A Kubernetes cluster and a configured &lt;code&gt;kubectl&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;helm&lt;/code&gt; command.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;curl&lt;/code&gt; command or similar for testing HTTPS requests.&lt;/li&gt;
&lt;li&gt;For the ACME HTTP-01 challenge to work
&lt;ul&gt;
&lt;li&gt;your Gateway must be reachable on the public Internet.&lt;/li&gt;
&lt;li&gt;the domain name you use (we use &lt;code&gt;www.example.com&lt;/code&gt;) must point to the Gateway&amp;rsquo;s external IP(s).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;h2 id="installation"&gt;Installation&lt;a class="td-heading-self-link" href="#installation" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Follow the steps below to install Envoy Gateway and the example manifest. Before
proceeding, you should be able to query the example backend using HTTP.&lt;/p&gt;</description></item></channel></rss>