如何在 ubuntu 18.04 上配置带有 ssl 终止的清漆?

  • 本文关键字:终止 ssl 配置 ubuntu varnish
  • 更新时间 :
  • 英文 :


我有一个在Ubuntu 18.04操作系统上运行的安装程序。还要使用 Apache2 和 SSL 设置服务器。我已经安装了Varnish,但不确定如何在不使用Nginx的情况下使用SSL进行设置。

基本上,我想设置 PWA,所以我需要一个带有清漆缓存的 SSL。

非常感谢在这个问题上的任何帮助。

谢谢

搭便车

您可以使用 Hitch 终止 TLS。Hitch由Varnish Software开发,其唯一工作是成为TLS代理。

您可以通过运行以下命令轻松地在 Ubuntu18.04上安装 Hitch:

apt-get install -y hitch

您可以将以下配置放在/etc/hitch/hitch.conf

frontend = {
host = "*"
port = "443"
}
#When using TCP/IP
backend = "[localhost]:8443"
#When using Unix Domain Sockets
#backend = "/run/varnish.sock"
pem-file = "/etc/hitch/certs/cert.pem"
proxy-proxy = on
ciphersuites = "TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256"
ciphers = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"
tls-protos = TLSv1.2 TLSv1.3
ecdh-curve = "X25519:prime256v1:secp384r1"
prefer-server-ciphers = false

在此示例中,证书位于/etc/hitch/certs/cert.pem下。确保此文件存在并包含正确的证书信息。Hitch 文档包含有关证书配置的更多信息,以防您需要更大的灵活性。

连接到Varnish可以通过TCP/IP或Unix域套接字来完成。在上面的示例中选择首选backend配置。

Varnish 6 & Unix Domain Sockets

如果您已经安装了Varnish 6,您甚至可以使用Unix Domain Sockets将Hitch连接到Varnish,从而消除了TCP/IP的潜在开销。

如果你从 Ubuntu 的软件包存储库(即 Varnish 5.2.1(安装了 Varnish,你可以通过转到 https://packagecloud.io/varnishcache/varnish60lts 来升级 Varnish 6 的官方打包版本。

6.0 之前的所有版本都已结束生命周期,升级到 Varnish 6 不仅从UDS的角度来看有意义,而且从安全性和稳定性的角度来看也有意义。

为了确保 Hitch 可以使用 PROXY 协议正确代理请求,您需要调整 Varnish 的运行时参数:

以下是默认设置:

/usr/sbin/varnishd -a :6081 -f /etc/varnish/default.vcl -s malloc,256m

您需要调整-a侦听器设置,如下所示:

/usr/sbin/varnishd -a http=:80,HTTP -a proxy=:8443,PROXY -a uds=/run/varnish.sock,PROXY,user=vcache,group=varnish,mode=660  -f /etc/varnish/default.vcl -s malloc,256m

这 3 个-a声明执行以下操作:

  • 在端口 80 上侦听常规 HTTP 连接
  • 在端口 8443 上侦听使用 PROXY 协议的传入 TCP/IP 连接
  • 在/run/varnish.sock 上侦听使用 PROXY 协议的传入 UDS 连接

结论

Hitch是Varnish的goto TLS代理,它提供非常低的开销,灵活,但仍然易于配置。

通过使用PROXY 协议,自动传输原始客户端 IP,Varnish 会自动将其设置为X-Forwarded-For值。

如果你想使用Unix域套接字,为了进一步降低开销,Varnish 6为您提供了这些功能。

如果您不想要 TLS 代理怎么办

几乎所有涉及TLS和Varnish的解决方案都归结为使用TLS代理。

如果你真的,真的,真的不想使用TLS代理,你可以使用Varnish Enterprise。它不是免费的和开源的,但它提供了一个原生TLS实现。

最新更新