如何在 CentOS/RHEL 8 上使用 Hitch 为 Varnish 缓存启用 HTTPS?
在当今的互联网安全世界中,在网站上启用 HTTPS 对于确保用户数据的隐私和安全至关重要。实现此目的的一种方法是使用 Varnish Cache 和 Hitch(一种轻量级 TLS 代理)来卸载 Varnish 的 SSL/TLS 处理。
在本文中,我们将指导您完成在 CentOS/RHEL 8 上使用 Hitch 为 Varnish Cache 启用 HTTPS 的过程。
先决条件
在我们开始之前,请确保您拥有以下内容 -
CentOS/RHEL 8 服务器
对服务器的 root 访问
安装清漆缓存和挂接装置
有效的 SSL/TLS 证书和私钥
如果您没有安装 Varnish Cache 和 Hitch,您可以按照以下命令安装它们 -
sudo dnf install varnish hitch
第 1 步:配置挂钩
首先,我们需要配置 Hitch 来侦听端口并将请求转发到 Varnish Cache。为此,我们将创建一个新的配置文件/etc/hitch/hitch.conf。
在您最喜欢的文本编辑器中打开文件 -
sudo nano /etc/hitch/hitch.conf
将以下内容添加到文件中 -
# Listen on port 443
frontend = "[*]:443"
# Forward requests to Varnish Cache
backend = "[::1]:6081"
# Use the SSL/TLS certificate and private key
pem-file = "/path/to/your/certificate.pem"
将 /path/to/your/certificate.pem 替换为您的 SSL/TLS 证书和私钥的路径。
保存并关闭文件。
第2步:配置Varnish缓存
接下来,我们需要配置 Varnish Cache 以使用 Hitch 作为其 SSL/TLS 代理。
在文本编辑器中打开 Varnish 缓存配置文件 /etc/varnish/varnish.params -
sudo nano /etc/varnish/varnish.params
将以下内容添加到文件中 -
# Use Hitch as the SSL/TLS proxy
VARNISH_BACKEND_PORT=8443
VARNISH_BACKEND_SSL=on
VARNISH_BACKEND_SSL_VERIFY_PEER=on
VARNISH_BACKEND_TLS_CERT=/path/to/your/certificate.pem
VARNISH_BACKEND_TLS_KEY=/path/to/your/certificate.pem
将 /path/to/your/certificate.pem 替换为您的 SSL/TLS 证书和私钥的路径。
保存并关闭文件。
第三步:重启服务
最后,重新启动 Hitch 和 Varnish Cache 服务以应用新配置 -
sudo systemctl restart hitch
sudo systemctl restart varnish
虽然上述步骤足以在 CentOS/RHEL 8 上使用 Hitch 为 Varnish Cache 启用 HTTPS,但您还可以执行一些其他操作来进一步增强网站的安全性。
使用证书颁发机构 (CA)
考虑使用由受信任的证书颁发机构 (CA) 颁发的证书,而不是使用自签名 SSL/TLS 证书。这将提高您的网站在用户眼中的可信度,并防止警告消息出现在他们的浏览器中。
您可以通过从商业提供商处购买证书或使用免费 CA(例如 Let's Encrypt)来从受信任的 CA 获取证书。
实施HSTS
HTTP 严格传输安全 (HSTS) 是一项安全功能,指示 Web 浏览器仅在指定时间段内通过 HTTPS 与您的网站进行通信。这可以防止降级攻击并提高网站的整体安全性。
要实现 HSTS,请将以下标头添加到您的 Hitch 配置文件中 -
# Enable HSTS for 1 year
tls-protos = TLSv1.2
ciphers = "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"
hsts = on
hsts-max-age = 31536000
hsts-include-subdomains = on
这将使 HSTS 启用一年并包括所有子域。
实施 OCSP 装订
在线证书状态协议 (OCSP) 装订是一项安全功能,允许服务器从 CA 获取其 SSL/TLS 证书的吊销状态并将其提供给客户端。这可以减少检查证书吊销状态所需的时间,从而提高网站的性能和安全性。
要实现 OCSP 装订,请将以下行添加到您的 Hitch 配置文件中 -
# Enable OCSP Stapling
ocsp-dir = "/var/lib/hitch/ocsp"
verify-ocsp = on
这将启用 OCSP Stapling 并将响应存储在 /var/lib/hitch/ocsp 目录中。
通过实施这些附加的安全功能,您可以进一步增强网站的安全性和可信度。
您可以采取以下一些额外步骤来优化 Varnish Cache 和 Hitch 的性能 -
使用 HTTP/2
HTTP/2 是 HTTP 协议的重大修订,显着提高了网页的性能。它支持服务器推送、多路复用和标头压缩等功能,可以减少请求数量并提高网站的加载速度。
要使用 HTTP/2,您需要在 Varnish Cache 和 Hitch 中启用它。方法如下:
在 Varnish Cache 中,将以下行添加到 /etc/varnish/varnish.params 文件 -
# Enable HTTP/2
VARNISH_LISTEN_PORT=80,8080 v1
在 Hitch 中,将以下行添加到 /etc/hitch/hitch.conf 文件 -
# Enable HTTP/2
alpn-protos = h2,h2c,http/1.1
完成这些更改后,重新启动 Varnish Cache 和 Hitch 服务 -
sudo systemctl restart varnish
sudo systemctl restart hitch
缓存静态内容
缓存图像、CSS 和 JavaScript 文件等静态内容可以显着提高网站的性能。通过在 Varnish Cache 中缓存这些文件,您可以减少请求数量并加快用户的加载时间。
要在 Varnish Cache 中缓存静态内容,您需要将以下行添加到 Varnish Cache 配置文件 (/etc/varnish/default.vcl) -
# Cache static content for 1 day
sub vcl_recv {
if (req.url ~ "\.(jpg|jpeg|gif|png|bmp|ico|pdf|flv|swf|css|js)(\?.*|)$") {
unset req.http.Cookie;
set req.url = regsub(req.url, "\?.*$", "");
set req.http.static = "YES";
if (req.request == "GET") {
return (hash);
}
return (pass);
}
}
sub vcl_backend_response {
if (bereq.http.static == "YES") {
set beresp.ttl = 1d;
}
}
这会将静态内容缓存 1 天,并绕过其他请求的缓存。
监控性能
最后,监控网站的性能并根据需要进行调整也很重要。您可以使用 Varnishstat 和 Hitchstats 等工具分别监控 Varnish Cache 和 Hitch 的性能。
要使用 Varnishstat,请运行以下命令 -
varnishstat
要使用 Hitchstats,请运行以下命令 -
hitch-stats --frontend=127.0.0.1:8443
这些工具将为您提供有关网站性能的宝贵见解,并帮助您确定需要改进的领域。
通过执行以下步骤,您可以优化 Varnish Cache 和 Hitch 的性能,并为您的用户提供快速、安全的浏览体验。
结论
在本文中,我们向您展示了如何在 CentOS/RHEL 8 上使用 Hitch 为 Varnish Cache 启用 HTTPS。通过将 SSL/TLS 处理卸载到 Hitch,我们提高了网站的性能和安全性。请记住保持您的 SSL/TLS 证书和私钥安全且最新,以确保用户数据的持续安全。