使用 BoringSSL
Pingora 支持使用 BoringSSL 提供高性能的 TLS/HTTPS 加密,确保客户端与上游服务器之间的通信安全。
配置 TLS
在 Pingora 配置文件中启用 TLS:
tls:
enable: true
cert: "/etc/ssl/certs/server.crt"
key: "/etc/ssl/private/server.key"
min_version: TLS1.2
max_version: TLS1.3
`
cert:服务器证书路径key:私钥路径min_version/max_version:TLS 协议版本范围
BoringSSL 特性
- 高性能的加密库,适合高并发场景
- 支持最新的 TLS 1.3 协议
- 与 OpenSSL API 高度兼容
- 提供安全增强特性,减少已知漏洞风险
启用 HTTPS 服务
let server = Server::new(Some(TlsConfig {
cert_path: "/etc/ssl/certs/server.crt".into(),
key_path: "/etc/ssl/private/server.key".into(),
}))?;
server.bootstrap();
server.run_forever(http_proxy_service(None))?;
- 初始化服务器时传入 TLS 配置
- Pingora 会自动处理 HTTPS 握手和加密传输
高级技巧
- 证书热更新:在不中断服务的情况下更新证书
- 客户端证书验证:实现双向 TLS(mTLS)
- 性能优化:启用 session reuse 或 TLS 0-RTT 加速握手
- 安全加固:禁用不安全加密算法,启用强加密套件
通过使用 BoringSSL,Pingora 可以提供安全、高性能的 HTTPS 服务,保障请求和数据在传输中的机密性与完整性。
相关内容
- 高级主题 (WIP) 探索 Pingora 的高级特性,包括内部机制、异步运行时、线程模型和自定义扩展。
- 后台服务 学习如何在 Pingora 中配置和运行后台服务,包括定时任务、异步执行和守护进程管理。
- 异步上下文中的阻塞代码 学习如何在 Pingora 异步运行时中处理阻塞代码,确保高并发请求环境下的性能和稳定性。
- 构建 HTTP 代理 学习如何使用 Pingora 构建 HTTP 代理服务,包括基本请求转发、上游配置和自定义过滤器。
- 配置文件 了解 Pingora 的配置文件结构、主要参数及其作用,学习如何为不同场景编写高效、清晰的配置。
- 连接池与复用 学习如何在 Pingora 中使用连接池和连接复用,提高代理服务的性能和资源利用率。