3 weeks ago
Hi everyone,
I’m trying to properly configure Databricks Serverless Private Git to connect to our on-premises GitLab, but I'm running into issues with private CA certificates.
Following the latest Databricks recommendations, our connection to GitLab goes through:
Because of this setup, we’re using Databricks Serverless Private Git.
What works
The connection to GitLab works correctly as long as SSL verification is disabled, for example:
{
"default": {
"sslVerify": false
}
}
With SSL verification turned off, Databricks can successfully clone the repository and run all Git operations.
What does NOT work
The issue appears when we want to enable proper SSL verification and use our internal CA certificate, since our organization does not use publicly-signed certificates — everything is signed by our internal PKI.
According to Databricks documentation:
Our configuration looks like this:
{
"default": {
"caCertPath": "/Workspace/.git_settings/cert.pem",
"httpProxy": "https://gitlab.apps.correcturl/"
},
"remotes": [
{
"caCertPath": "/Workspace/.git_settings/cert.pem",
"urlPrefix": "https://gitlab.apps.correcturl/"
}
]
}
After enabling this, the connection stops working. Git on Databricks fails to validate the certificate even though the CA is valid and works with other tools (curl/git from local machines, CI pipelines, etc.).
Symptoms
Error creating Git folder
remote: git proxy error, HTTPSConnectionPool(host='gitlab.apps.correcturl', port=443): Max retries exceeded with url: /path-in-git/notebooks.git/info/refs?service=git-upload-pack (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get issuer certificate (_ssl.c:1007)')))
Request ID: 7faa538c-946e-416c-90ee-b41c5891ff85. Show error details
Question
Has anyone successfully implemented a similar setup:
and managed to make Git use a custom CA certificate correctly?
Any ideas or guidance would be very appreciated.
Thanks!
3 weeks ago
Hello @kfadratek , thanks for the detailed context — Let's take a look at what could be causing the SSL verification to fail with a custome CA in Serverless Private Git and discuss some approaches that might resolve it.
/Workspace/.git_settings/config.json, and you must grant all Git users View to that file and any referenced CA files. Changes can take up to 1 minute to apply.httpProxy is the HTTPS URL of the proxy to route Git traffic through. It should point to your proxy (host:port), not to the Git server URL itself. The field is optional — leave it empty if you don’t need a proxy beyond your PrivateLink/NLB/SLB path./Workspace/.git_settings/config.json * /Workspace/.git_settings/cert.pem (or your chosen name)--cacert) against the exact hostname used by Serverless, then use that same bundle inside Databricks.https://gitlab.apps.correcturl/ from a machine that trusts only your enterprise CAs using your CA bundle; check the chain and SANs. If your LB/proxy offloads TLS, verify it presents the cert for gitlab.apps.correcturl and that the issuer matches the CA bundle.httpProxy to that proxy’s full HTTPS URL (for example, https://proxy.internal.company.com:8443). Otherwise remove it; it’s optional./Workspace/.git_settings/config.json and keep the default section present (even partial). Use caCertPath to reference the custom CA and, if needed, httpProxy to route traffic. Remote-specific overrides go under remotes and must include urlPrefix.json
{
"default": {
"sslVerify": true,
"caCertPath": "/Workspace/.git_settings/ca-bundle.pem",
"httpProxy": "https://proxy.internal.company.com:8443"
},
"remotes": [
{
"urlPrefix": "https://gitlab.apps.correcturl/",
"caCertPath": "/Workspace/.git_settings/ca-bundle.pem"
}
]
}
GIT_PROXY_CA_CERT_PATH=/FileStore/myCA-bundle.pem on the proxy cluster. * Use the same bundle you intend to use for Serverless Private Git and validate clone/pull. If the classic proxy succeeds with your bundle but serverless fails, focus on workspace file access/permissions and the httpProxy semantics in the serverless config./Workspace/.git_settings/config.json and the CA file; confirm the paths are correct.3 weeks ago
Hello @kfadratek , thanks for the detailed context — Let's take a look at what could be causing the SSL verification to fail with a custome CA in Serverless Private Git and discuss some approaches that might resolve it.
/Workspace/.git_settings/config.json, and you must grant all Git users View to that file and any referenced CA files. Changes can take up to 1 minute to apply.httpProxy is the HTTPS URL of the proxy to route Git traffic through. It should point to your proxy (host:port), not to the Git server URL itself. The field is optional — leave it empty if you don’t need a proxy beyond your PrivateLink/NLB/SLB path./Workspace/.git_settings/config.json * /Workspace/.git_settings/cert.pem (or your chosen name)--cacert) against the exact hostname used by Serverless, then use that same bundle inside Databricks.https://gitlab.apps.correcturl/ from a machine that trusts only your enterprise CAs using your CA bundle; check the chain and SANs. If your LB/proxy offloads TLS, verify it presents the cert for gitlab.apps.correcturl and that the issuer matches the CA bundle.httpProxy to that proxy’s full HTTPS URL (for example, https://proxy.internal.company.com:8443). Otherwise remove it; it’s optional./Workspace/.git_settings/config.json and keep the default section present (even partial). Use caCertPath to reference the custom CA and, if needed, httpProxy to route traffic. Remote-specific overrides go under remotes and must include urlPrefix.json
{
"default": {
"sslVerify": true,
"caCertPath": "/Workspace/.git_settings/ca-bundle.pem",
"httpProxy": "https://proxy.internal.company.com:8443"
},
"remotes": [
{
"urlPrefix": "https://gitlab.apps.correcturl/",
"caCertPath": "/Workspace/.git_settings/ca-bundle.pem"
}
]
}
GIT_PROXY_CA_CERT_PATH=/FileStore/myCA-bundle.pem on the proxy cluster. * Use the same bundle you intend to use for Serverless Private Git and validate clone/pull. If the classic proxy succeeds with your bundle but serverless fails, focus on workspace file access/permissions and the httpProxy semantics in the serverless config./Workspace/.git_settings/config.json and the CA file; confirm the paths are correct.Passionate about hosting events and connecting people? Help us grow a vibrant local community—sign up today to get started!
Sign Up Now