> ## Documentation Index
> Fetch the complete documentation index at: https://bruno-a6972042-docs-clustered-top-nav-v2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Proxy and mTLS

<Warning>
  From Bruno **v4.1.0**, the desktop app supports global client certificates in Preferences. The CLI does not read Preferences. In CI, continue using `--client-cert-config` with the same file shape as before. Collection certificates that include `"disabled": true` are skipped.

  Certificates from `--client-cert-config` are appended after collection certificates and resolved by first domain match, so collection certificates take precedence for overlapping domains. See [Add and Manage Certificates](/auth/add-and-manage-certs).
</Warning>

Bruno CLI allows you to configure proxy settings directly from the terminal. You can also add client certificates through the CLI.

Follow the steps below to set up configurations quickly and efficiently.

### Disabling Proxies

If you need to bypass all proxy settings (both collection-defined and system proxies) when running requests, you can use the `--noproxy` flag:

```bash copy theme={null}
bru run --noproxy
```

The flag completely disables all proxy settings for that particular CLI run.

## Using Client Certificates for API Requests

If your API requests require client certificates for authentication, you can specify using the `--client-cert-config` option. The configuration should be provided in a JSON file. Here's an example of how to use this option:

```bash copy theme={null}
bru run  --client-cert-config /path/to/client-cert-config.json
```

The client-cert-config.json file should contain the following fields:

```json theme={null}
{
  "enabled": true,
  "certs": [
    {
      "domain": "usebruno.com",
      "type": "cert",
      "certFilePath": "certs/server_1.crt",
      "keyFilePath": "private/server_1.key",
      "passphrase": "Iu$eBrun0_#Secure!"
    },
    {
      "domain": "the-example.com",
      "type": "pfx",
      "pfxFilePath": "pfx/server_3.pfx",
      "passphrase": "L!ghT_Y@g@mi_2024!"
    }
  ]
}
```

### How `--client-cert-config` interacts with `bruno.json`

The certificates from `--client-cert-config` are **appended to** the certificates already defined under `clientCertificates.certs` in `bruno.json`, not swapped in. Both sets are available during the run, and Bruno picks a certificate for each request by matching its host against each entry's `domain`.

Two conditions must be met for `--client-cert-config` entries to be added:

* The JSON file must exist and be valid JSON.
* The top-level `enabled` field must be `true`.

If `enabled` is `false` or omitted, or `certs` is not an array, Bruno prints a warning and only the `bruno.json` certificates are used for the run.

If both a `--client-cert-config` entry and a `bruno.json` entry match the same domain, the `bruno.json` entry takes precedence because it is checked first.
