Skip to content

Commit 0c3792e

Browse files
committed
docs: improve SSL certificate troubleshooting guidance
1 parent 7b1708f commit 0c3792e

File tree

3 files changed

+73
-3
lines changed

3 files changed

+73
-3
lines changed

docs/faqs.mdx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,15 @@ If you're seeing a `fetch failed` error and your network requires custom certifi
3838

3939
You may also set `requestOptions.caBundlePath` to an array of paths to multiple certificates.
4040

41-
**_Windows VS Code Users_**: Installing the [win-ca](https://marketplace.visualstudio.com/items?itemName=ukoloff.win-ca) extension should also correct this issue.
41+
**_Windows VS Code Users_**: Installing the [win-ca](https://marketplace.visualstudio.com/items?itemName=ukoloff.win-ca) extension may help Continue use the Windows certificate store, but `requestOptions.caBundlePath` is the most reliable fix.
42+
43+
### Common SSL certificate errors
44+
45+
If your logs include errors such as `unable to verify the first certificate`, `self signed certificate in certificate chain`, `certificate verify failed`, or `CERT_UNTRUSTED`, Continue was able to reach the endpoint but could not verify the TLS certificate chain it returned.
46+
47+
In most cases, the fix is to export the root or intermediate CA certificate for that endpoint and set `requestOptions.caBundlePath` in your model configuration. If the server also requires mutual TLS, add `requestOptions.clientCertificate` as well.
48+
49+
For step-by-step diagnosis with `curl` and `openssl`, see [Troubleshooting SSL certificate errors](/troubleshooting#ssl-certificate-errors).
4250

4351
### VS Code Proxy Settings
4452

@@ -382,4 +390,4 @@ If you'd like to perform a clean reset of the extension, including removing all
382390

383391
## Still having trouble?
384392

385-
You can also join [GitHub Discussions](https://github.com/continuedev/continue/discussions) for additional support. Alternatively, you can create a GitHub issue [here](https://github.com/continuedev/continue/issues/new?assignees=&labels=bug&projects=&template=bug-report-%F0%9F%90%9B.md&title=), providing details of your problem, and we'll be able to help you out more quickly.
393+
You can also join [GitHub Discussions](https://github.com/continuedev/continue/discussions) for additional support. Alternatively, you can create a GitHub issue [here](https://github.com/continuedev/continue/issues/new?assignees=&labels=bug&projects=&template=bug-report-%F0%9F%90%9B.md&title=), providing details of your problem, and we'll be able to help you out more quickly.

docs/guides/how-to-self-host-a-model.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,3 +120,5 @@ config.json
120120
]
121121
}
122122
```
123+
124+
If your endpoint uses a private or corporate CA but does not require mutual TLS, configure `requestOptions.caBundlePath` instead. For common errors like `unable to verify the first certificate` or `CERT_UNTRUSTED`, see [Configure Certificates](/faqs#configure-certificates) and [SSL certificate errors](/troubleshooting#ssl-certificate-errors).

docs/troubleshooting.mdx

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ description: "Comprehensive guide to resolving common issues with Continue, incl
88
3. [Download an older version](#download-an-older-version)
99
4. [Resolve keyboard shortcut issues](#keyboard-shortcuts-not-resolving)
1010
5. [MCP Server connection issues](#mcp-server-connection-issues)
11-
6. [Check FAQs for common issues](/faqs)
11+
6. [SSL certificate errors](#ssl-certificate-errors)
12+
7. [Check FAQs for common issues](/faqs)
1213

1314
## Check the logs
1415

@@ -104,6 +105,65 @@ To find the full path to a command on your system:
104105

105106
This issue typically affects macOS users with large development environments and is being tracked in [#7870](https://github.com/continuedev/continue/issues/7870) and [#6699](https://github.com/continuedev/continue/issues/6699).
106107

108+
## SSL certificate errors
109+
110+
If Continue can reach your model endpoint but cannot verify its TLS certificate chain, you may see `fetch failed` alongside errors such as:
111+
112+
- `unable to verify the first certificate`
113+
- `self signed certificate in certificate chain`
114+
- `certificate verify failed`
115+
- `CERT_UNTRUSTED`
116+
117+
This usually happens when you are connecting to a self-hosted model, enterprise proxy, or internal endpoint that uses a private CA or an incomplete certificate chain.
118+
119+
### Quick fix: trust the CA bundle
120+
121+
Add the root or intermediate certificate for that endpoint to your model's `requestOptions.caBundlePath`:
122+
123+
```yaml
124+
models:
125+
- name: Secure endpoint
126+
provider: openai
127+
model: gpt-4.1
128+
apiBase: https://llm.example.com/v1
129+
requestOptions:
130+
caBundlePath: /path/to/ca-chain.pem
131+
```
132+
133+
If your setup requires mutual TLS, configure `requestOptions.clientCertificate` too. The self-hosting guide includes an example in [How to Set Up Authentication](/guides/how-to-self-host-a-model#how-to-set-up-authentication).
134+
135+
### Diagnose the certificate problem
136+
137+
1. Reproduce the error in the Continue logs so you can confirm the exact hostname that failed.
138+
2. Test the endpoint directly with `curl`:
139+
140+
```bash
141+
curl -v https://llm.example.com/v1/models
142+
```
143+
144+
3. Inspect the certificate chain with OpenSSL:
145+
146+
```bash
147+
openssl s_client -showcerts -connect llm.example.com:443 -servername llm.example.com </dev/null
148+
```
149+
150+
4. Save the required root or intermediate certificate as a PEM file and point `requestOptions.caBundlePath` at it.
151+
5. Verify the fix with curl before retrying in Continue:
152+
153+
```bash
154+
curl --cacert /path/to/ca-chain.pem https://llm.example.com/v1/models
155+
```
156+
157+
### Common setups
158+
159+
For self-hosted or enterprise deployments, these options usually help:
160+
161+
- Private CA or corporate proxy: set `requestOptions.caBundlePath`
162+
- Mutual TLS: set `requestOptions.clientCertificate`
163+
- Windows VS Code: if your certificates are managed through the Windows certificate store, the [win-ca extension](https://marketplace.visualstudio.com/items?itemName=ukoloff.win-ca) may help, but `requestOptions.caBundlePath` remains the most reliable option
164+
165+
As a temporary debugging step, you can set `requestOptions.verifySsl: false` to confirm the failure is certificate-related. Do not leave this disabled in normal use.
166+
107167

108168
## Still having trouble?
109169

0 commit comments

Comments
 (0)