mirror of
				https://github.com/open-metadata/OpenMetadata.git
				synced 2025-11-04 04:29:13 +00:00 
			
		
		
		
	
		
			
	
	
		
			39 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Fix PKI Not Found When Using Keycloak with Custom PKI
							 | 
						||
| 
								 | 
							
								description: Learn how to resolve PKI not found errors in OpenMetadata when using Keycloak behind Nginx with custom PKI by importing CA certificates into the truststore.
							 | 
						||
| 
								 | 
							
								slug: /deployment/security/keycloak/troubleshooting
							 | 
						||
| 
								 | 
							
								collate: false
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# FAQ: Security with Keycloak
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## How to resolve "PKI not found" error when connecting to Keycloak behind Nginx with a custom PKI?
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								If you're using Keycloak behind an Nginx reverse proxy with a custom Public Key Infrastructure (PKI), OpenMetadata may fail to authenticate due to missing trusted certificates. This results in a **"PKI not found"** or TLS validation error.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Resolution
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								To allow OpenMetadata to trust your custom CA:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1. **Extend the OpenMetadata Docker image** and import your custom CA certificate into the Java truststore.
							 | 
						||
| 
								 | 
							
								2. Use the following command (replace paths accordingly):
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								   keytool -import -trustcacerts -keystore $JAVA_HOME/lib/security/cacerts \
							 | 
						||
| 
								 | 
							
								     -storepass changeit -noprompt -alias my-custom-ca \
							 | 
						||
| 
								 | 
							
								     -file /path/to/your/custom-ca.crt
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								3. Alternatively, if you're using Helm, you can update your deployment by modifying the container image or using an initContainer to patch the truststore and setting:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								OPENMETADATA_OPTS="-Djavax.net.ssl.trustStore=/path/to/keystore.jks \
							 | 
						||
| 
								 | 
							
								-Djavax.net.ssl.trustStorePassword=changeit"
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								For guidance on extending the Docker image, refer to the official documentation:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[Extending OpenMetadata Docker Image (GKE Example)](/deployment/kubernetes/gke#extending-openmetadata-server-docker-image)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This enables OpenMetadata to establish a secure connection with Keycloak behind your Nginx reverse proxy using a custom certificate authority.
							 |