Skip to content

Commit 6950cb9

Browse files
committed
update tls docs
1 parent 2c3e130 commit 6950cb9

1 file changed

Lines changed: 30 additions & 7 deletions

File tree

docs/guides/https.md

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ In this case, the VPC Lattice service automatically generates a managed ACM cert
4949

5050
If you want to use a custom domain name along with its own certificate, follow instructions on [Requesting a public certificate](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html) to create a certificate for your custom domain name in ACM.
5151

52-
Note that only `Terminate` mode is supported (Passthrough is not supported).
52+
Note that only `Terminate` mode is supported for HTTPS listeners. For TLS Passthrough, use a `protocol: TLS` listener with a [TLSRoute](../api-types/tls-route.md) instead.
5353

5454
#### Automatic Certificate Discovery
5555

@@ -138,10 +138,14 @@ spec:
138138

139139
### Enabling TLS connection on the backend
140140

141-
Currently, TLS Passthrough mode is not supported in the controller, but it allows TLS re-encryption to support backends that only allow TLS connections.
142-
To handle this use case, you need to configure your service to receive HTTPs traffic instead:
141+
If your backend pods require TLS connections, you can configure VPC Lattice to re-encrypt traffic before forwarding it to your pods. This is useful when you want VPC Lattice to terminate client-facing TLS (for HTTP routing and inspection) while still encrypting the connection from VPC Lattice to your pods.
143142

144-
```yaml title="target-group.yaml" hl_lines="10"
143+
!!! note
144+
If you want end-to-end passthrough without TLS termination, use a [TLSRoute](../api-types/tls-route.md) with a `protocol: TLS`, `mode: Passthrough` Gateway listener instead. The approach below is for re-encryption, where VPC Lattice terminates and then re-establishes TLS to the backend.
145+
146+
To configure TLS re-encryption, create a `TargetGroupPolicy` with `protocol: HTTPS`:
147+
148+
```yaml title="target-group-policy.yaml" hl_lines="10"
145149
apiVersion: application-networking.k8s.aws/v1alpha1
146150
kind: TargetGroupPolicy
147151
metadata:
@@ -155,7 +159,26 @@ spec:
155159
protocolVersion: HTTP1
156160
```
157161
158-
This will create VPC Lattice TargetGroup with HTTPs protocol option, which can receive TLS traffic.
159-
Note that certificate validation is not supported.
162+
This creates a VPC Lattice target group with HTTPS protocol, causing Lattice to open a TLS connection when forwarding traffic to your pods.
163+
164+
!!! warning "Health check protocol"
165+
If your pods only accept TLS connections, you **must** also set `healthCheck.protocol: HTTPS` in the TargetGroupPolicy. Health checks default to HTTP, so without this setting they will fail and targets will never become healthy.
166+
167+
```yaml
168+
healthCheck:
169+
protocol: HTTPS
170+
path: /healthz
171+
statusMatch: "200"
172+
```
173+
174+
#### Certificate requirements
175+
176+
VPC Lattice does not validate backend certificates, so self-signed certificates work without any CA or trust bundle configuration. Re-encryption provides transport-level encryption between VPC Lattice and your pods, but does not authenticate the backend server's identity.
177+
178+
#### Re-encryption vs TLS Passthrough
179+
180+
With re-encryption, VPC Lattice terminates TLS from the client and routes traffic based on HTTP headers, while encrypting the connection to the backend pod. This allows you to use HTTPRoute or GRPCRoute features like path-based routing, header matching, and IAM auth policies.
181+
182+
If you need true end-to-end encryption where VPC Lattice never decrypts traffic, use [TLS Passthrough](tls-passthrough.md) instead. With TLS Passthrough, routing is limited to SNI hostname matching and IAM auth policies are restricted to anonymous principals.
160183

161-
For more details, please refer to [TargetGroupPolicy API reference](../api-types/target-group-policy.md).
184+
For more details on TargetGroupPolicy fields, see the [TargetGroupPolicy API reference](../api-types/target-group-policy.md).

0 commit comments

Comments
 (0)