When you update the SSL certificate of your Keycloak/SSO Provider with a certificate whose CA isn’t present in the Java keystore, then the authentication silently fails without providing any message.
In order to solve this, follow the below steps:
Assuming you have deployed sparkflows in Kubernetes, you need to edit the secrets.yaml which contains the keycloak-sslcert that stores the SSL certificate that would be required while connecting to the Keycloak/SSO provider for authentication.
- First export the Keycloak certificate using the command below
openssl s_client -connect [keycloak.sparkflows.net:443](http://keycloak.sparkflows.net:443/) -showcerts < /dev/null | openssl x509 -outform PEM > keycloak.sparkflows.net.crt
- Convert this certificate into base64 encoding, using the below command.
echo -n '<certificate-content>' | base64
- Copy and paste the output in the secrets.yaml file under the secret keycloak-sslcert, as shown below
apiVersion: v1
kind: Secret
metadata:
name: keycloak-sslcert
namespace: sparkflows
type: Opaque
data:
keycloak-sslcert.crt: <Base64-encoded-certificate-secret>
- Create/Update this secret resource in Ezmeral Kubernetes.
kubectl apply -f secrets.yaml
- Finally restart the pod, for the changes to take effect.