hitch配置完全指南:掌握20+核心参数的最佳实践

hitch配置完全指南:掌握20+核心参数的最佳实践

【免费下载链接】hitch A scalable TLS proxy by Varnish Software. 【免费下载链接】hitch 项目地址: https://gitcode.com/gh_mirrors/hi/hitch

hitch是一款由Varnish Software开发的可扩展TLS代理,能够帮助用户轻松实现HTTPS加密并将流量转发到后端服务器。本指南将详细介绍hitch的核心配置参数,帮助新手用户快速掌握配置技巧,实现安全高效的TLS代理服务。

基础配置:快速上手

核心参数概览

hitch的配置主要包括证书设置、监听地址、后端服务器和工作进程等基本参数。以下是最常用的核心配置项:

  • pem-file:指定包含私钥和证书的PEM文件路径
  • frontend:设置监听地址和端口
  • backend:配置后端服务器地址
  • workers:指定工作进程数量,通常建议每个核心一个进程

最小化配置示例

创建一个简单的配置文件hitch.conf

pem-file = "/etc/hitch/certs/example.com.pem"
frontend = "[*]:443"
backend = "[127.0.0.1]:80"
workers = 4

这个配置将在所有网络接口的443端口监听HTTPS请求,并将解密后的流量转发到本地80端口的后端服务。

证书管理:保障安全通信

PEM文件准备

hitch需要PEM格式的证书文件,包含私钥、服务器证书和中间CA证书。创建方法如下:

$ cat example.com.key example.com.crt intermediate.pem > example.com.pem

如果需要支持Diffie-Hellman密钥交换(提供前向保密性),还需添加DH参数:

$ openssl dhparam -rand - 2048 >> example.com.pem

详细的证书创建步骤可参考docs/certificates.md

多证书配置

对于托管多个域名的场景,可以配置多个证书:

pem-file = "/etc/hitch/certs/site1.example.com.pem"
pem-file = "/etc/hitch/certs/site2.example.com.pem"
pem-file = "/etc/hitch/certs/wildcard.example.com.pem"

hitch会根据客户端的SNI(服务器名称指示)自动选择匹配的证书。最后一个证书将作为默认证书,当没有匹配项时使用。

OCSP stapling配置

OCSP stapling可以提高TLS握手性能并增强隐私保护。启用自动OCSP stapling:

ocsp-dir = "/var/lib/hitch/ocsp"
ocsp-verify-staple = on
ocsp-connect-tmo = 5
ocsp-resp-tmo = 10

hitch将自动从证书中指定的OCSP响应器获取和更新OCSP响应。ocsp-dir目录需要hitch用户可读写。

高级网络配置:优化性能与兼容性

前端监听配置

通过frontend参数可以配置多个监听端点,支持不同的IP地址、端口和证书组合:

frontend = "[192.0.2.10]:443+certs/site1.example.com.pem"
frontend = "[192.0.2.11]:443+certs/site2.example.com.pem"
frontend = "[*]:8443"

这种配置适用于需要为不同域名使用不同IP地址的传统场景,或需要在非标准端口提供服务的情况。

后端代理设置

配置后端服务器时,可以启用PROXY协议来传递客户端真实IP:

backend = "[192.168.1.100]:8080"
write-proxy = on

PROXY协议支持v1(文本格式)和v2(二进制格式),可以通过write-proxy-v1write-proxy-v2参数指定。详细信息请参考docs/proxy-protocol.md

TLS协议与密码套件

控制支持的TLS协议版本和密码套件:

tls-protos = TLSv1.2 TLSv1.3
ciphers = "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"
alpn-protos = "h2,http/1.1"

默认情况下,hitch只启用TLS 1.2和1.3,这是兼顾安全性和兼容性的推荐配置。alpn-protos参数用于配置ALPN协商,支持HTTP/2需要设置此参数。

TCP快速打开

在支持的系统上启用TCP快速打开可以减少网络延迟:

tcp-fastopen = on

此功能可以节省TCP握手的一个往返时间,特别适合移动设备用户。

运行环境优化:提升稳定性与安全性

用户与权限

为了安全起见,hitch应以root权限启动(以便监听1024以下端口),然后切换到非特权用户:

user = "hitch"
group = "hitch"

确保配置的用户具有证书文件和OCSP目录的适当访问权限。

工作进程设置

根据服务器CPU核心数配置工作进程数量:

workers = 4

通常建议每个CPU核心运行一个工作进程,以充分利用系统资源。

配置重载

hitch支持不中断服务的配置重载,通过发送SIGHUP信号实现:

$ kill -HUP $(cat /var/run/hitch.pid)

重载功能支持更新证书和监听端点等配置,非常适合需要频繁更新证书的场景。

虚拟主机配置:多域名支持

SNI-based虚拟主机

现代客户端支持SNI,可以使用单个IP地址托管多个域名:

frontend = "[*]:443"
pem-file = "/etc/hitch/certs/site1.example.com.pem"
pem-file = "/etc/hitch/certs/site2.example.com.pem"
pem-file = "/etc/hitch/certs/wildcard.example.com.pem"

hitch会根据客户端提供的服务器名称自动选择合适的证书。如果没有匹配的证书,可以选择终止连接:

sni-nomatch-abort = on

传统虚拟主机

对于不支持SNI的旧客户端,需要为每个域名配置单独的IP地址:

frontend = "[192.0.2.10]:443+certs/site1.example.com.pem"
frontend = "[192.0.2.11]:443+certs/site2.example.com.pem"

这种配置需要多个IP地址,但可以兼容非常旧的客户端。详细信息请参考docs/vhosts.md

实用配置示例

基本生产配置

# 证书配置
pem-file = "/etc/hitch/certs/example.com.pem"
ocsp-dir = "/var/lib/hitch/ocsp"
ocsp-verify-staple = on

# 网络配置
frontend = "[*]:443"
backend = "[192.168.1.100]:80"
write-proxy-v2 = on
tcp-fastopen = on

# TLS配置
tls-protos = TLSv1.2 TLSv1.3
ciphers = "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"
alpn-protos = "h2,http/1.1"

# 运行配置
workers = 4
user = "hitch"
group = "hitch"
pidfile = "/var/run/hitch.pid"

支持旧客户端的配置

# 兼容旧客户端
ssl = on
tls-protos = TLSv1.0 TLSv1.1 TLSv1.2
ciphers = "HIGH:!aNULL:!MD5"

# 多IP配置
frontend = "[192.0.2.10]:443+certs/site1.example.com.pem"
frontend = "[192.0.2.11]:443+certs/site2.example.com.pem"
backend = "[192.168.1.100]:80"
write-proxy = on

# 运行配置
workers = 2
user = "hitch"
group = "hitch"

总结

hitch是一个功能强大且灵活的TLS代理,通过合理配置可以满足各种场景需求。从基本的HTTPS终止到高级的OCSP stapling和HTTP/2支持,hitch提供了全面的功能集。

关键配置要点:

  • 使用最新的TLS协议版本(TLS 1.2+)
  • 配置强密码套件并启用前向保密性
  • 正确设置证书链和OCSP stapling
  • 根据服务器资源调整工作进程数量
  • 使用PROXY协议将客户端IP传递给后端

通过本指南介绍的20+核心参数,您可以构建安全、高效且稳定的TLS代理服务。更多高级配置选项,请参考官方文档docs/configuration.md

要开始使用hitch,可以克隆仓库:git clone https://gitcode.com/gh_mirrors/hi/hitch,然后按照安装说明进行部署。

【免费下载链接】hitch A scalable TLS proxy by Varnish Software. 【免费下载链接】hitch 项目地址: https://gitcode.com/gh_mirrors/hi/hitch

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值