envoy 中文参考文档
  • 首页
  • 简介
    • Envoy是什么
    • 架构介绍
      • 术语
      • 线程模型
      • 监听器
      • L3/L4网络过滤器
      • HTTP连接管理
      • HTTP过滤器
      • HTTP路由
      • gRPC
      • WebSocket支持
      • 集群管理
      • 服务发现
      • 健康检查
      • 连接池
      • 负载均衡
      • 异常检测
      • 熔断
      • 全局限速
      • TLS
      • 统计
      • 运行时配置
      • 跟踪
      • TCP代理
      • 访问日志
      • MongoDB
      • DynamoDB
      • Redis
      • 热重启
      • 动态配置
      • 初始化
      • 逐出
      • 脚本
    • 部署
    • 业界对比
    • 获得帮助
    • 历史版本
  • 编译安装
    • 编译
    • 参考配置
    • 演示沙箱
      • 前端代理
      • Zipkin跟踪
      • Jaeger跟踪
      • gRPC桥接
      • 构建Envoy Docker镜像
    • 工具
  • 配置参考
    • V1 API 概述
    • V2 API 概述
    • 监听器
    • 网络过滤器
      • TLS客户端身份认证
      • Echo
      • Mongo代理
      • 速率限制
      • Redis代理
      • TCP代理
    • HTTP连接管理器
      • 路由匹配
      • 流量转移/分流
      • HTTP头部操作
      • HTTP头部清理
      • 统计
      • 运行时设置
      • 路由发现服务
    • HTTP过滤器
      • 缓存
      • CORS过滤器
      • 故障注入
      • DynamoDB
      • gRPC HTTP/1.1 桥接
      • gRPC-JSON 转码过滤器
      • gRPC-Web 过滤器
      • 健康检查
      • 速率限制
      • 路由
      • Lua
    • 集群管理
      • 统计
      • 运行时设置
      • 集群发现服务
      • 健康检查
      • 熔断
    • 访问日志
    • 限速服务
    • 运行时配置
    • 路由表检查工具
  • 运维管理
    • 命令行选项
    • 热重启
    • 管理接口
    • 统计概述
    • 运行时配置
    • 文件系统
  • 自定义扩展示例
  • V1 API参考
    • 监听器
    • 网络过滤器
      • TLS客户端身份认证
      • Echo
      • HTTP连接管理
      • Mongo代理
      • 速率限制
      • Redis代理
      • TCP代理
    • HTTP路由配置
      • 虚拟主机
      • 路由
      • 虚拟集群
      • 速率限制配置
      • 路由发现服务
    • HTTP过滤器
      • 缓存
      • CORS过滤器
      • DynamoDB
      • 故障注入
      • gRPC HTTP/1.1 桥接
      • gRPC-JSON 转码过滤器
      • gRPC-Web 过滤器
      • 健康检查
      • Lua
      • 速率限制
      • 路由
    • 集群管理
      • 集群
        • 健康检查
        • 熔断
        • TLS上下文
        • 异常值检测
        • HASH环负载均衡配置
      • 异常检测
      • 集群发现服务
      • 服务发现服务
    • 访问日志
    • 管理接口
    • 限速服务
    • 运行时配置
    • 跟踪
  • V2 API参考
    • 启动引导
    • 监听&监听发现
    • 集群&集群发现
    • 服务发现
    • 健康检查
    • HTTP路由管理&发现
    • TLS配置
    • 通用的类型
    • 网络地址
    • 协议选项
    • 发现API
    • 限速组件
    • 过滤器
      • 网络过滤器
        • TLS客户端身份认证
        • HTTP连接管理
        • Mongo代理
        • 速率限制
        • Redis代理
        • TCP代理
      • HTTP过滤器
        • 缓存
        • 故障注入
        • 健康检查
        • Lua
        • 速率限制
        • 路由
        • gRPC-JSON转码器
      • 常见访问日志类型
      • 常见故障注入类型
  • FAQ
    • Envoy有多快?
    • 我在哪里获得二进制文件?
    • 我如何设置SNI?
    • 如何设置区域感知路由?
    • 我如何设置Zipkin跟踪?
Powered by GitBook
On this page
  • TLS配置
  • DataSource
  • TlsParameters
  • TlsParameters.TlsProtocol (Enum)
  • TlsCertificate
  • TlsSessionTicketKeys
  • CertificateValidationContext
  • CommonTlsContext
  • UpstreamTlsContext
  • DownstreamTlsContext
  • 返回

Was this helpful?

  1. V2 API参考

TLS配置

PreviousHTTP路由管理&发现Next通用的类型

Last updated 5 years ago

Was this helpful?

TLS配置

DataSource

{
  "filename": "..."
}
  • filename

    (, REQUIRED) 本地文件系统数据源。必须设置一个文件名。

TlsParameters

{
  "tls_minimum_protocol_version": "...",
  "tls_maximum_protocol_version": "...",
  "cipher_suites": [],
  "ecdh_curves": []
}
[ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]
[ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]
ECDHE-ECDSA-AES128-SHA256
ECDHE-RSA-AES128-SHA256
ECDHE-ECDSA-AES128-SHA
ECDHE-RSA-AES128-SHA
AES128-GCM-SHA256
AES128-SHA256
AES128-SHA
ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-ECDSA-AES256-SHA
ECDHE-RSA-AES256-SHA
AES256-GCM-SHA384
AES256-SHA256
AES256-SHA

将会被使用。

  • ecdh_curves

TlsParameters.TlsProtocol (Enum)

  • TLS_AUTO (DEFAULT) Envoy将选择最佳的TLS版本。

  • TLSv1_0 TLS 1.0

  • TLSv1_1

    TLS 1.1

  • TLSv1_2

    TLS 1.2

  • TLSv1_3

    TLS 1.3

TlsCertificate

{
  "certificate_chain": "{...}",
  "private_key": "{...}"
}

TlsSessionTicketKeys

{
  "keys": []
}
  • 每个密钥必须包含完全80字节的密码安全随机数据。例如,openssl rand 80的输出。

    • 保持会话凭证密钥至少与TLS证书私钥一样安全。

    • 至少每天轮换会话凭证密钥,最好每小时轮换一次。

    • 始终使用密码安全的随机数据源生成密钥。

CertificateValidationContext

{
  "trusted_ca": "{...}",
  "verify_certificate_hash": [],
  "verify_subject_alt_name": []
}

CommonTlsContext

客户端和服务器TLS上下文共享。

{
  "tls_params": "{...}",
  "tls_certificates": [],
  "validation_context": "{...}",
  "alpn_protocols": []
}
  • 注意:虽然这是一个列表,但是目前只支持单个证书。这将在未来放宽。

    • “h2,http/1.1” 如果监听器要同时支持HTTP/2和HTTP/1.1。

    • “http/1.1” 如果监听器只支持HTTP/1.1。

      这个参数没有默认值。如果为空,Envoy将不会暴露ALPN。

UpstreamTlsContext

{
  "common_tls_context": "{...}",
  "sni": "..."
}

DownstreamTlsContext

{
  "common_tls_context": "{...}",
  "require_client_certificate": "{...}",
  "session_ticket_keys": "{...}"
}
  • 注意:只有一个session_ticket_keys可被设置。

返回

tls_minimum_protocol_version () 容许的最小TLS协议版本。

tls_maximum_protocol_version () 容许的最大TLS协议版本。

cipher_suites () 如果指定,则TLS监听器将仅支持指定的密码套件。如果未指定,则默认列表:

() 如果指定,TLS连接将只支持指定的ECDH密钥交换。如果未指定,将使用默认(X25519,P-256)。

certificate_chain () TLS证书链。

private_key () TLS私钥。

keys (, REQUIRED) TLS会话的加解密的密钥。数组中的第一个密钥将作所有新会话加密的上下文。所有密钥都将用来解密所收到的凭证。这允许通过,先放置新的密钥在前面,第二个是旧的密钥,用于实现密钥轮换。

如果未指定,那么TLS库仍将支持通过故障恢复单个会话,但会使用内部生成和管理的密钥,因此会话不能在热重启或不同的主机上恢复。

注意:使用此功能需要考虑严重的安全风险。即使使用了支持完美前向保密的密码,对密钥的不正确处理也可能导致连接的保密性丧失。有关讨论,请讨论。为了最大限度地降低风险,您必须:

trusted_ca () TLS证书数据包含颁发机构证书,提供用于验证客户端的证书。如果未指定并且提供了客户端证书,则不会进行验证。默认情况下,校验客户端证书是可选的,除非还指定了其中一个附加选项(require_client_certificate,verify_certificate_hash或verify_subject_alt_name)。

verify_certificate_hash () 如果指定,Envoy将验证(pin)所提供证书的十六进制编码的SHA-256散列。

verify_subject_alt_name () 可选,标题替代名称列表。如果指定,Envoy将验证证书的标题替代名称是否与指定其中一个值匹配。

tls_params () TLS协议版本,算法套件等。

tls_certificates () 多个TLS证书可以与相同的上下文关联。 例如:为了同时允许RSA和ECDSA证书,可以配置两个TLS证书。

validation_context () 如何验证对等证书。

alpn_protocols () 提供监听器应该公开的ALPN协议列表。实际上,这可能会被设置为两个值之一(有关更多信息,请参阅HTTP连接管理器中的codec_type参数):

common_tls_context () 常见的TLS上下文设置。

sni () 创建TLS后端连接时使用的SNI字符串。

common_tls_context () 常见的TLS上下文设置。

require_client_certificate () 如果指定,Envoy将拒绝没有有效客户端证书的连接。

session_ticket_keys () TLS会话凭证密钥设置。

TlsParameters proto
string
string
TlsParameters.TlsProtocol proto
TlsCertificate proto
TlsSessionTicketKeys proto
参阅
CertificateValidationContext proto
string
string
CommonTlsContext proto
string
UpstreamTlsContext proto
string
DownstreamTlsContext proto
BoolValue
上一级
首页目录
DataSource proto
string
DataSource
TlsParameters
TlsParameters.TlsProtocol (Enum)
TlsCertificate
TlsSessionTicketKeys
CertificateValidationContext
CommonTlsContext
UpstreamTlsContext
DownstreamTlsContext
TlsParameters.TlsProtocol
TlsParameters.TlsProtocol
DataSource
DataSource
DataSource
session_ticket_keys
DataSource
TlsParameters
TlsCertificate
CertificateValidationContext
CommonTlsContext
CommonTlsContext
TlsSessionTicketKeys