跳至主要內容

SSL、HTTP Proxy 安全設定

如果您處於使用較舊 TTS bundle、且使用較舊加密的環境,請遵循本指南。預設情況下,LiteLLM 會使用 certifi CA bundle 進行 SSL 驗證,這與大多數現代伺服器相容。 不過,如果您需要停用 SSL 驗證或使用自訂 CA bundle,可以依照下列步驟進行。

請注意,環境變數的優先順序高於 SDK 中的設定。

LiteLLM 使用 HTTPX 進行網路請求,除非另有指定。

1. 自訂 CA Bundle​

您可以使用 SSL_CERT_FILE 環境變數,或將字串傳遞給 ssl_verify 設定,來設定自訂 CA bundle 檔案路徑。

import litellm
litellm.ssl_verify = "client.pem"

2. 停用 SSL 驗證​

import litellm
litellm.ssl_verify = False

3. 較低的安全設定​

ssl_security_level 可讓您為 SSL 連線設定較低的安全等級。

import litellm
litellm.ssl_security_level = "DEFAULT@SECLEVEL=1"

4. 憑證驗證​

SSL_CERTIFICATE 環境變數或 ssl_certificate 屬性可用來設定用戶端憑證,以驗證用戶端與伺服器之間的身分。

import litellm
litellm.ssl_certificate = "/path/to/certificate.pem"

5. 設定 ECDH 曲線以提升 SSL/TLS 效能​

ssl_ecdh_curve 設定可讓您設定 SSL/TLS 金鑰交換所使用的橢圓曲線 Diffie-Hellman(ECDH)曲線。這對於停用後量子密碼學(PQC)以提升在不需要 PQC 的環境中的效能特別有用。

使用情境: 某些 OpenSSL 3.x 系統預設會啟用 PQC,這可能會降低 TLS 握手速度。將 ECDH 曲線設定為 X25519 會停用 PQC,並可大幅提升連線效能。

import litellm
litellm.ssl_ecdh_curve = "X25519" # Disables PQC for better performance

常見有效曲線:

  • X25519 - 現代、快速的曲線(建議用於停用 PQC)
  • prime256v1 - NIST P-256 曲線
  • secp384r1 - NIST P-384 曲線
  • secp521r1 - NIST P-521 曲線

注意: 如果提供了無效的曲線名稱,或您的 Python/OpenSSL 版本不支援此功能,LiteLLM 會記錄警告並繼續使用預設曲線。

6. 使用 HTTP_PROXY 環境變數​

LiteLLM 會從環境中解析 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY,適用於每一個 LLM 請求,無論是預設的 aiohttp 傳輸還是 httpx 傳輸(DISABLE_AIOHTTP_TRANSPORT=True),不論是否有 force_ipv4。不需要額外的旗標;請在 proxy 或 SDK 啟動前設定這些變數:

export HTTPS_PROXY='http://username:password@proxy_uri:port'
export NO_PROXY='localhost,127.0.0.1'

設定 DISABLE_AIOHTTP_TRUST_ENV=True(或 litellm.disable_aiohttp_trust_env = True)可讓 aiohttp 傳輸忽略這些變數。AIOHTTP_TRUST_ENV(或 litellm.aiohttp_trust_env)與 proxy 選擇無關:它會將 trust_env=True 傳遞給 aiohttp 工作階段,因此 aiohttp 本身也會讀取 ~/.netrc 和 SSL_CERT_FILE / SSL_CERT_DIR。

7. 依服務設定 SSL 驗證​

LiteLLM 允許您針對特定服務或提供者呼叫覆寫 SSL 驗證設定。當不同服務(例如內部防護欄與公開 LLM 提供者)需要不同的 CA 憑證時,這非常有用。

Bedrock(SDK)​

您可以直接在 ssl_verify 呼叫中傳遞 completion。

import litellm

response = litellm.completion(
model="bedrock/us.anthropic.claude-sonnet-5",
messages=[{"role": "user", "content": "hi"}],
ssl_verify="path/to/bedrock_cert.pem" # Or False to disable
)

AIM Guardrail(Proxy)​

您可以在 ssl_verify 中,針對每個防護欄設定 config.yaml。

guardrails:
- guardrail_name: aim-protected-app
litellm_params:
guardrail: aim
ssl_verify: "/path/to/aim_cert.pem" # Use specific cert for AIM

Cato Networks Guardrail(Proxy)​

您可以在 ssl_verify 中,針對每個防護欄設定 config.yaml。

guardrails:
- guardrail_name: cato-protected-app
litellm_params:
guardrail: cato_networks
ssl_verify: "/path/to/cato_cert.pem" # Use specific cert for AIM

優先順序邏輯​

LiteLLM 依下列優先順序解析 ssl_verify:

  1. 明確參數:在 completion() 或防護欄設定中傳入。
  2. 環境變數:SSL_VERIFY 環境變數。
  3. 全域設定:litellm.ssl_verify 設定。
  4. 系統標準:SSL_CERT_FILE 環境變數。