TLS

    • 加密可配置: 每个 TLS 监听器和客户端都可以指定它支持的加密算法。
    • 证书验证和固定: 证书验证选项包括基本的证书链验证、Subject 名称验证和哈希固定。
    • 证书撤销: 如果提供了证书撤销列表(CRL),Envoy 可以根据它检查对等证书。
    • ALPN: TLS 监听器支持 ALPN. HTTP 连接管理器使用这个信息(以及协议接口)来确定客户端使用的是 HTTP/1.1 还是 HTTP/2.
    • SNI: SNI 同时支持服务端(监听器)连接和客户端(上游)连接。
    • 会话恢复: 服务器连接支持通过 TLS 会话票据恢复之前的会话(参见)。可以在热重启时和并行 Envoy 实例之间执行恢复(通常在前端代理配置中很有用)。

    目前 Envoy 被编写为使用 BoringSSL 作为 TLS 提供者。

    /etc/ssl/certs/ca-certificates.crt 是 Debian 系统上 CA 包文件的默认路径。它使得 Envoy 在验证 127.0.0.2:1234 的服务器身份时,使用与标准安装的 Debian 系统上的 cURL 等相同的方式。Linux 和 BSD 系统上常见的系统 CA 包文件路径有

    • /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem (CentOS/RHEL 7)
    • /etc/pki/tls/certs/ca-bundle.crt (Fedora/RHEL 6)
    • /etc/ssl/ca-bundle.pem (OpenSUSE)
    • /usr/local/etc/ssl/cert.pem (FreeBSD)
    • /etc/ssl/cert.pem (OpenBSD)

    Envoy 提供了一个网络过滤器,通过从 REST VPN 服务拉取的主体来进行 TLS 客户端身份验证。此过滤器将提供的客户端证书哈希与主体列表进行匹配,以确定是否允许连接。另外也可以配置一个可选的 IP 白名单。此功能可用于为 Web 基础架构构建边缘代理 VPN 支持。