This page discusses the followings:
Table of Contents | ||
---|---|---|
|
Installing the Nginx Ingress Controller
You can set up Nginx Ingress Controller as a front-end for Webapp Gateway to add an extra layer of security while establishing communication between external users and the application.
...
Run the following command to add the Nginx Ingress Controller repository.
Code Block language css theme Midnight helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
Run the following command to create a namespace
Code Block language css theme Midnight kubectl create namespace <ingress>
Where,
ingress is the name of the namespace.
Run the command as shown in the example below to install the Nginx Ingress Controller helm
Code Block language css theme Midnight helm install <my-ingress-nginx> <ingress-nginx/ingress-nginx> -n <namespace>
Where,
my-ingress-nginx is the name of the Nginx Ingress release.
ingress-nginx/ingress-nginx is the repository path.
Configuring SSL in Kubernetes Ingress
An important prerequisites for a secure communication between the web browser (end user) and the web server is to use Secure Sockets Layer (SSL) certificate. Adeptia Connect microservices also adheres to this requirement. To achieve this, after you've deployed Adeptia Connect, you need to configure SSL in the Kubernetes Ingress Controller. If you're using any Kubernetes ingress controller as a front-end for communication, you need to configure SSL through Kubernetes ingress object.
...
After you've configured ingress, you've to follow the steps below in the same sequence.
Anchor | ||||
---|---|---|---|---|
|
The steps for exporting the public key of the Ingress controller external URL (external FQDN, for example, dummy.adeptia.com) vary from browser to browser. It is recommended that you export the key using DER encoded binary format X.509 (.CER). Following are the steps to export the public key in Google Chrome browser.
- Enter the Adeptia Connect application URL (client-specific according to client domain) in the browser.
The login page opens. - Click > More tools > Developer tools.
- Click Security tab.
- Click View Certificate.
- On the Certificate window, on the Details tab, click Copy to File.
- Click Next to start exporting the certificate.
- Choose DER encoded binary X.509 (.CER) and click Next.
- Specify the location to save the exported file and click Next.
- Click Finish to export.
- Click OK to exit from the wizard.
Anchor | ||||
---|---|---|---|---|
|
This section helps you to import SSL certificate in the microservices Truststore.
...
Run the following Kubectl command to copy the certificate to the PVC or shared storage volume for the Webapp Gateway pod.
Code Block language css theme Midnight Kubectl --namespace <namepace_name> cp <local_path_for_SSL_certificate> <pod_name>:shared/truststore/<SSL_certificate_name>
Navigate to the Microservice pod (Eg. Webrunner) by running the following command.
Code Block language css theme Midnight Kubectl --namespace <namespace_name> exec -it <pod_name> -- sh
Run the following Keytool command to import the certificate.
Code Block language css theme Midnight keytool -import -trustcacerts -file <Path_of_SSL_Certificate> -alias <alias_name> -keystore <Path of cacerts file>
Where,
<Path_of_SSL_Certificate> is the path of SSL certificate.
<Path of cacerts file> is the path of Truststore.
For example,
Code Block language css theme Midnight keytool -import -trustcacerts -file shared/truststore/ssl-certs.cer -alias adeptia -keystore shared/truststore/cacerts
You'll be prompted to enter a password. Enter the default password changeit.
- Run the exit command to exit from the pod shell.
- Restart all the Microservices to bring the changes into effect.
Handling HTTP headers containing underscores ( _ )
To ensure that connection between Adeptia Connect and a business application establishes successfully even if the header contains underscores ( _ ), set the value for the property enable-underscores-in-headers to true in the ConfigMap of Nginx Ingress Controller.
...
Open the ConfigMap of Nginx Ingress Controller in edit mode using the following command.
Code Block language css theme Midnight Kubectl edit configmap <name of the Nginx Ingress Controller ConfigMap> -n <namespace in which Nginx Ingress Controller is deployed>
- Add the following property in the data section of the ConfigMap with its value as true as shown below.
enable-underscores-in-headers: “true”. - Save the ConfigMap, and restart the Nginx Ingress Controller deployment.
...