> ## Documentation Index
> Fetch the complete documentation index at: https://cndoc-langchain.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 配置自定义 TLS 证书

使用本指南在 LangSmith 中配置 TLS。首先挂载内部证书颁发机构（CA），以便您的部署在系统范围内信任正确的根证书，用于数据库或外部服务调用。然后，您可以配置 [Playground](/langsmith/prompt-engineering-concepts#playground) 特定的 mTLS，以便与支持的模型提供商进行安全通信。

本页涵盖：

* [挂载内部证书颁发机构](#mount-internal-cas-for-tls)（CA）以在系统范围内启用数据库连接和 Playground 模型调用的 TLS
* 使用 Playground 特定的 TLS 设置，为与支持的模型提供商进行 mTLS 提供客户端证书/密钥

## 为 TLS 挂载内部 CA

<Note>
  您必须使用 Helm chart 版本 0.11.9 或更高版本，才能使用以下配置挂载内部 CA。
</Note>

使用此方法使内部/公共 CA 在 LangSmith（Playground 模型调用和[数据库/外部服务连接](/langsmith/self-hosted#storage-services)）中被系统范围信任。

1. 创建一个包含与数据库和外部服务进行 TLS 所需的所有 CA 的文件。如果您的部署直接与 `beacon.langchain.com` 通信而没有代理，请确保包含一个公共受信任的 CA。所有证书应在此文件中连接，证书之间用空行分隔。
   ```
   -----BEGIN CERTIFICATE-----
   <PUBLIC_CA>
   -----END CERTIFICATE-----

   -----BEGIN CERTIFICATE-----
   <INTERNAL_CA>
   -----END CERTIFICATE-----

   ...
   ```
2. 创建一个 Kubernetes secret，其键包含此文件的内容。
   ```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
   kubectl create secret generic <SECRET_NAME> --from-file=<SECRET_KEY>=<CA_BUNDLE_FILE_PATH> -n <NAMESPACE>
   ```
3. 如果使用自定义 CA 与您的数据库和其他外部服务进行 TLS，请向您的 LangSmith helm chart 提供以下值：
   ```yaml Helm theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
   config:
     customCa:
       secretName: <SECRET_NAME> # 在步骤 2 中创建的 secret 的名称。
       secretKey: <SECRET_KEY> # secret 中包含 CA 包的键。

   clickhouse:
     external:
       tls: true # 仅在您希望 Clickhouse 使用 TLS 时启用。
   postgres:
     external:
       customTls: true # 仅在您希望 Postgres 使用 TLS 时启用。
   ```
4. 确保使用支持 TLS 的连接字符串：
   * <b>Postgres</b>：在末尾添加 `?sslmode=verify-full&sslrootcert=system`。
   * <b>Redis</b>：使用 `rediss://` 而不是 `redis://` 作为前缀。

## 为模型提供商使用自定义 TLS 证书

<Note>
  此功能目前仅适用于以下模型提供商：

  * Azure OpenAI
  * OpenAI
  * 自定义（我们的自定义模型服务器）。有关更多信息，请参阅[自定义模型服务器文档](/langsmith/custom-endpoint)。

  这些 TLS 设置适用于所选模型提供商的所有调用（包括在线评估）。当提供商要求相互 TLS（客户端证书/密钥）或您必须为提供商调用使用特定 CA 覆盖信任时，请使用它们。它们补充了上面配置的内部 CA 包。
</Note>

您可以使用自定义 TLS 证书在 Playground 中连接到模型提供商。如果您使用的是自签名证书、来自自定义证书颁发机构的证书或相互 TLS 身份验证，这将非常有用。

要使用自定义 TLS 证书，请设置以下环境变量。有关如何配置应用程序设置的更多信息，请参阅[自托管概述](/langsmith/self-hosted)。

* \[可选] `LANGSMITH_PLAYGROUND_TLS_KEY`：PEM 格式的私钥。这必须是文件路径（用于挂载的卷）。通常仅在相互 TLS 身份验证时需要。
* \[可选] `LANGSMITH_PLAYGROUND_TLS_CERT`：PEM 格式的证书。这必须是文件路径（用于挂载的卷）。通常仅在相互 TLS 身份验证时需要。
* \[可选] `LANGSMITH_PLAYGROUND_TLS_CA`：PEM 格式的自定义证书颁发机构（CA）证书。这必须是文件路径（用于挂载的卷）。仅当您使用低于 `0.11.9` 的 helm 版本时才使用此方法挂载 CA；否则，请使用上面的[为 TLS 挂载内部 CA](/langsmith/self-host-custom-tls-certificates#mount-internal-cas-for-tls) 部分。

设置这些环境变量后，进入 Playground **设置**页面，选择需要自定义 TLS 证书的**提供商**。像往常一样设置您的模型提供商配置，连接到模型提供商时将使用自定义 TLS 证书。

***

<div className="source-links">
  <Callout icon="terminal-2">
    [将这些文档](/use-these-docs)通过 MCP 连接到 Claude、VSCode 等，以获取实时答案。
  </Callout>

  <Callout icon="edit">
    [在 GitHub 上编辑此页面](https://github.com/langchain-ai/docs/edit/main/src/langsmith/self-host-custom-tls-certificates.mdx) 或 [提交问题](https://github.com/langchain-ai/docs/issues/new/choose)。
  </Callout>
</div>
