如何在 Linux 系统上使用 Caddy 托管支持 HTTPS 的网站?

linuxoperating systemopen source

简介

对于网站安全而言,HTTPS 至关重要。HTTPS,即超文本传输​​安全协议,是一种用于加密网站与其访问者之间传输数据的协议。

加密技术确保网站上共享的任何敏感信息(例如登录凭据或支付详情)不会被第三方用户截获。如果没有 HTTPS,网站很容易受到中间人攻击和网络钓鱼等攻击。

这些类型的攻击可能导致严重的数据泄露,并造成用户信任度下降。除了提供安全优势外,HTTPS 还具有 SEO 优势,因为像 Google 这样的搜索引擎会将其视为排名因素。

准备环境

设置域名和 DNS 记录

准备环境的下一步是为您的网站设置域名。域名就像一个地址,用户可以通过浏览器访问您的网站。您可以通过 Namecheap 或 GoDaddy 等众多服务商注册域名。

注册域名后,您需要配置 DNS 记录,以便访问者在浏览器中输入您的域名时可以找到您的网站。您通常需要创建一个指向服务器 IP 地址的 A 记录。

在服务器上安装 Caddy

您需要在服务器上安装 Caddy 才能托管 HTTPS 网站。 Caddy 是一款 Web 服务器,它可以轻松地使用 Let's Encrypt 证书为任何网站配置 HTTPS。

要在 Ubuntu Server 20.04 LTS 上安装 Caddy,首先需要添加 Caddy 软件仓库密钥。

sudo apt update 
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https 
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/cfg/gpg/gpg.155B6D79CA56EA34.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc 

然后添加 Caddy 软件仓库本身 -

curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/cfg/setup/config.deb.txt?distro=debian&version=any-version' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update sudo apt install caddy

配置 Caddy 以支持 HTTPS

创建 Caddyfile 以定义网站配置

在 Linux 服务器上安装 Caddy 后,下一步是创建 Caddyfile。此文件允许您定义网站的配置,例如它将服务哪些域名以及如何路由流量。要创建基本的 Caddyfile 文件,请打开文本编辑器并输入以下内容:

yourdomain.com { root /var/www/html } 

将"yourdomain.com"替换为您的实际域名,并将"/var/www/html"替换为您网站根目录的路径。这个简单的配置会告诉 Caddy,当有人访问您的域名时,从指定的目录提供文件。

使用 Let's Encrypt 证书为您的网站添加 TLS 加密

Caddy 最棒的功能之一就是它让添加 TLS 加密(HTTPS 中的"S")变得极其简单。Let's Encrypt 是一个开放的证书颁发机构,提供所有主流浏览器都认可的免费 SSL/TLS 证书。要将 Let's Encrypt 与 Caddy 配合使用,请将以下行添加到您的 Caddyfile 中:

tls { dns cloudflare {env.CLOUDFLARE_API_TOKEN} }

此配置指示 Caddy 使用 Cloudflare DNS 验证自动获取和续订 SSL/TLS 证书。请将"{env.CLOUDFLARE_API_TOKEN}"替换为存储在服务器环境变量中的实际 Cloudflare API 令牌。

使用 SSL Labs 测试您的 HTTPS 设置

使用 Caddy 和 Let's Encrypt 为您的网站配置 HTTPS 后,测试其安全级别非常重要。SSL Labs 的服务器测试 (https://www.ssllabs.com/ssltest/) 是一个很棒的工具。只需在提供的字段中输入您的域名,然后点击"提交"即可。

该测试将评估您网站的 SSL/TLS 配置,并根据其安全功能给出评分。争取获得"A"级,以确保您的网站尽可能安全。

高级配置选项

自定义 Caddyfile

Caddy 的简洁性是其最大的优势之一,但它也提供了丰富的自定义选项。除了指定网站根目录等基本设置外,您还可以向 Caddyfile 添加指令以增强功能。

例如,您可以设置将 HTTP 流量重定向到 HTTPS 流量,确保所有网站访问者都通过安全连接访问网站。如果您的网站已经上线一段时间,并且已有指向它的 HTTP 外部链接,这将特别有用。

另一个高级配置选项是在 Caddyfile 中设置子域名。子域名可以帮助组织大型网站的内容,使访问者更容易找到他们想要的内容。

例如,如果您有一个销售服装和配饰的电子商务网站,您可以创建类似"shirts.example.com"或"accessories.example.com"的子域名。设置子域名需要在 Caddyfile 中创建单独的配置块,并分别设置子域名。

配置自动证书续订

Let's Encrypt 证书每 90 天过期一次,这意味着需要定期续订以确保网站 HTTPS 安全不间断。但是,每隔几个月手动续订证书既耗时又容易出错。幸运的是,Caddy 可以轻松配置自动证书续订。

要在 Caddy 中启用自动续订,只需添加"tls"指令,后跟"self_signed off"和"management"指令。"management"指令指定 ACME 客户端注册信息的保存位置,以便在服务器或应用程序实例后续重启期间自动续订证书,而无需任何额外的用户干预。

虽然乍一看自定义 Caddyfile 似乎令人生畏,但一旦了解其工作原理,就会发现其实非常简单。此外,配置自动证书续订功能可确保您的 HTTPS 安全始终保持最新状态,无需任何手动干预。

常见问题排查

调试配置过程中可能出现的常见错误,例如 DNS 或防火墙设置问题

即使尽了最大努力,在配置 Caddy 的 HTTPS 时仍可能遇到一些错误。用户面临的最常见问题之一是 DNS 问题。要正确配置 HTTPS,您的网站需要有效的域名和准确的 DNS 记录。

如果您在通过 HTTPS 访问网站时遇到问题,请首先仔细检查您的域名和 DNS 记录是否配置正确。此部分配置错误会导致服务器重定向错误,进而导致 SSL 证书失效。

优化性能和安全性的技巧

Caddy 提供了多种方法来优化通过 HTTPS 托管网站时的性能和安全性。 Caddy 开发人员提供的最有价值的建议之一是使用 A+ 级 SSL 加密套件,以提高安全性标准,同时保持高性能。另一种提高性能的方法是将静态内容(例如图像或 CSS 文件)缓存到内容分发网络 (CDN) 上。

CDN 会将常用页面的缓存版本存储在更靠近用户地理位置的位置,从而减少页面加载延迟。在安全性方面,请确保保留最新的备份,以防在故障排除或优化配置过程中出现任何问题。

结论

按照本指南操作后,您现在应该已经拥有一个使用 Caddy 在 Linux 服务器上托管的、支持 HTTPS 的网站。使用 HTTPS 对于保护您的网站至关重要,并能让访问者在浏览您的网站时感到安心。使用 Caddy,HTTPS 配置过程得以简化,对于注重安全性和易用性的 Web 开发人员来说,这是一个绝佳的选择。

在本指南中,我们介绍了在 Linux 上使用 Caddy 托管 HTTPS 网站的必要步骤。我们首先在服务器上安装 Linux,配置 DNS 设置,然后安装 Caddy,以此来搭建环境。


相关文章


有用资源