You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**Option 2: Kubernetes Gateway API pattern** — Install Envoy Gateway. You must install the Envoy Gateway Controller with Experimental Features and Extension APIs enabled. These are required to support `BackendTLSPolicy` for secure backend communication and `EnvoyPatchPolicy` for session persistence.
@@ -199,7 +213,127 @@ If your hostname is backed by a DNS service, create a DNS record that maps the h
199
213
<EXTERNAL-IP> wso2is.com
200
214
```
201
215
202
-
## Step 7: Access {{product_name}}
216
+
## Step 7: (Optional) Configure Backend TLS for Envoy Gateway
217
+
218
+
!!! note
219
+
This step is only required if you are using Envoy Gateway.
220
+
221
+
When using Envoy Gateway, the communication between the Gateway and the WSO2 Identity Server pods is secured via Backend TLS. To establish this trust, Envoy must verify the certificate presented by the WSO2 IS.
222
+
223
+
You must provide a Kubernetes ConfigMap containing the CA certificate that signed the WSO2 IS TLS certificate.
224
+
225
+
Follow the steps below to generate a self-signed CA certificate and sign the WSO2 IS Keystore certificate to ensure successful Backend TLS communication between Envoy and the backend Identity Server.
226
+
227
+
!!! note
228
+
WSO2 Identity Server supports using multiple, purpose‑specific keystores — for example, separate keystores for Primary, Internal, and TLS use cases. In production it's recommended to maintain distinct keystores so that keys used for different functions (such as internal data encryption, token signing, and TLS communication) can be managed and rotated independently. For Backend TLS communication with Envoy Gateway, only the TLS keystore (which holds the certificate used for HTTPS/TLS connections) is required.
229
+
230
+
### Step 7a: Generate a Self-Signed Certificate Authority (CA)
231
+
232
+
First, create a private key and a self-signed root certificate to act as your internal CA.
To ensure the certificate is compatible with Envoy Gateway's strict validation, you must include the keyUsage and Subject Alternative Name (SAN). Create a file named `server.conf`.
247
+
248
+
```
249
+
[req]
250
+
distinguished_name = req_distinguished_name
251
+
req_extensions = v3_req
252
+
prompt = no
253
+
254
+
[req_distinguished_name]
255
+
CN = localhost
256
+
257
+
[v3_req]
258
+
keyUsage = digitalSignature, keyEncipherment
259
+
extendedKeyUsage = serverAuth
260
+
subjectAltName = @alt_names
261
+
262
+
[alt_names]
263
+
DNS.1 = localhost
264
+
```
265
+
266
+
### Step 7c: Generate and Sign the WSO2 IS Certificate
267
+
268
+
Generate a new private key forthe WSO2 IS Keystore and sign the request using the CA createdin Step 7a.
### Step 7e: Import the CA Certificate into the Truststore
298
+
299
+
To ensure that WSO2 Identity Server can trust the CA forTLS communication, you need to add the CA certificate to the client truststore. You can either use the truststore providedin the WSO2 product distribution (`client-truststore.p12`) or create your own. This allows WSO2 IS to validate certificates issued by the CA, including its own TLS certificate.
300
+
301
+
```shell
302
+
keytool -importcert \
303
+
-alias wso2carbon \
304
+
-file wso2carbon-ca.crt \
305
+
-keystore client-truststore.p12 \
306
+
-storetype PKCS12 \
307
+
-storepass wso2carbon \
308
+
-noprompt
309
+
```
310
+
311
+
### Step 7f: Create Kubernetes Resources
312
+
313
+
Deploy the generated TLS Keystore and CA Certificate into the Kubernetes namespace.
314
+
315
+
**I. Create TLS Keystore Secret**
316
+
317
+
This secret contains the PKCS12 keystore used by the WSO2 Identity Server pods to secure their TLS communication.
318
+
319
+
```shell
320
+
kubectl create secret generic keystores \
321
+
--from-file=wso2carbon.p12 \
322
+
--from-file=client-truststore.p12 \
323
+
-n $NAMESPACE
324
+
```
325
+
326
+
**II. Create CA Bundle ConfigMap**
327
+
328
+
This ConfigMap contains the Root CA certificate. Envoy Gateway uses this to verify the identity of the WSO2 IS pods during the TLS handshake.
329
+
330
+
```shell
331
+
kubectl create configmap wso2-ca-bundle \
332
+
--from-file=ca.crt=wso2carbon-ca.crt \
333
+
-n $NAMESPACE
334
+
```
335
+
336
+
## Step 8: Access {{product_name}}
203
337
204
338
Once everything is set up, you can access WSO2 Identity Server using the following URLs:
205
339
@@ -208,4 +342,4 @@ Once everything is set up, you can access WSO2 Identity Server using the followi
208
342
209
343
Congratulations! You have successfully deployed WSO2 Identity Server on Kubernetes using Helm.
210
344
211
-
If you are deploying {{product_name}} on Azure Kubernetes Service (AKS) and require an advanced set up, refer to the relevant section in the [documentation](https://github.com/wso2/kubernetes-is/blob/master/README.md#advance-setup){:target = "_blank"}.
345
+
If you are deploying {{product_name}} on Azure Kubernetes Service (AKS) and require an advanced setup, refer to the relevant section in the [documentation](https://github.com/wso2/kubernetes-is/blob/master/README.md#advance-setup){:target = "_blank"}.
0 commit comments