# `Codex.Net.CA`
[🔗](https://github.com/nshkrdotcom/codex_sdk/blob/v0.16.1/lib/codex/net/ca.ex#L1)

Shared custom CA bundle resolution for subprocesses and outbound TLS clients.

`CODEX_CA_CERTIFICATE` takes precedence over `SSL_CERT_FILE`. Blank values are
treated as unset. When neither variable is set, callers should fall back to
system trust roots.

# `certificate_file`

```elixir
@spec certificate_file() :: String.t() | nil
```

Returns the effective CA certificate bundle path, if any.

# `certificate_file`

```elixir
@spec certificate_file(map()) :: String.t() | nil
```

# `env_overrides`

```elixir
@spec env_overrides() :: %{optional(String.t()) =&gt; String.t()}
```

Returns subprocess environment overrides for the resolved CA bundle.

# `env_overrides`

```elixir
@spec env_overrides(map()) :: %{optional(String.t()) =&gt; String.t()}
```

Returns subprocess environment overrides for the resolved CA bundle.

# `httpc_ssl_options`

```elixir
@spec httpc_ssl_options() :: keyword()
```

Returns `:httpc` SSL options for the resolved CA bundle.

# `httpc_ssl_options`

```elixir
@spec httpc_ssl_options(map()) :: keyword()
```

# `merge_httpc_options`

```elixir
@spec merge_httpc_options(keyword()) :: keyword()
```

# `merge_httpc_options`

```elixir
@spec merge_httpc_options(
  keyword(),
  map()
) :: keyword()
```

Merges CA-specific SSL options into an `:httpc` options keyword list.

# `merge_req_options`

```elixir
@spec merge_req_options(keyword()) :: keyword()
```

# `merge_req_options`

```elixir
@spec merge_req_options(
  keyword(),
  map()
) :: keyword()
```

Merges CA-specific `connect_options` into an existing Req options keyword list.

# `req_connect_options`

```elixir
@spec req_connect_options() :: keyword()
```

Returns Req `connect_options` for the resolved CA bundle.

# `req_connect_options`

```elixir
@spec req_connect_options(map()) :: keyword()
```

# `websocket_ssl_options`

```elixir
@spec websocket_ssl_options() :: keyword()
```

Returns websocket SSL options for the resolved CA bundle.

# `websocket_ssl_options`

```elixir
@spec websocket_ssl_options(map()) :: keyword()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
