-
Notifications
You must be signed in to change notification settings - Fork 0
xtls
omeyang edited this page Sep 17, 2026
·
1 revision
稳定性:Stable · 覆盖率:90.5% · 源码:
pkg/security/xtls
TLS 配置加载与构建。文件路径或 inline 字节均可;支持 mTLS;提供 gRPC credentials.TransportCredentials 工厂。
- HTTP/gRPC 服务端启用 TLS / mTLS
- gRPC 客户端使用证书
- 测试场景用 inline 证书快速搭起
import "github.com/omeyang/xkit/pkg/security/xtls"
// 服务端
cfg, _ := xtls.BuildServerTLSConfig(xtls.Config{
CertFile: "/etc/certs/server.crt",
KeyFile: "/etc/certs/server.key",
CAFile: "/etc/certs/ca.crt",
Require: true, // mTLS
})
listener, _ := tls.Listen("tcp", ":443", cfg)
// gRPC 凭据
creds, _ := xtls.ServerCredentials(cfg)
server := grpc.NewServer(grpc.Creds(creds))| 名称 | 说明 |
|---|---|
Config |
证书/密钥/CA(文件路径或 inline 字节) |
BuildServerTLSConfig(c) (*tls.Config, error) |
服务端 |
BuildClientTLSConfig(c) (*tls.Config, error) |
客户端 |
ServerCredentials / ClientCredentials |
gRPC 凭据 |
- MinVersion = TLS1.2:默认强制
- Inline 优先于文件:inline 字节存在时忽略文件路径
-
Require=false单向 TLS:CA 忽略 - 空 CA 文件:拒绝(避免误以为 mTLS 实际无 trust)