如何在 Linux 上使用 Caddy 托管 HTTPS 网站?
介绍
当谈到网站安全时,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
为 HTTPS 配置 Caddy
创建 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 with Caddy,请将以下行添加到您的 Caddyfile -
tls { dns cloudflare {env.CLOUDFLARE_API_TOKEN} }
此配置告诉 Caddy 使用 Cloudflare DNS 验证自动获取和续订 SSL/TLS 证书。将“{env.CLOUDFLARE_API_TOKEN}”替换为存储在服务器上的环境变量中的实际 Cloudflare API 令牌。
使用 SSL 实验室测试您的 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”。管理指令指定 ACME 客户端注册应保存在何处,以便在服务器或应用程序实例的后续重新启动期间可以自动更新证书,而无需任何额外的用户干预。
虽然定制 Caddyfile 乍一看似乎令人畏惧,但一旦您了解了所有内容如何协同工作,它实际上就非常简单。此外,配置自动证书续订可确保您的 HTTPS 安全性保持最新状态,无需任何手动干预。
常见问题故障排除
调试配置过程中可能出现的常见错误,例如 DNS 或防火墙设置问题
尽管尽了最大努力,在为 HTTPS 配置 Caddy 时仍可能会遇到一些错误。用户面临的最常见问题之一是 DNS。为了准确配置 HTTPS,您的网站需要有效的域名和准确的 DNS 记录。
如果您在通过 HTTPS 访问网站时遇到问题,请首先仔细检查您的域名和 DNS 记录是否配置正确。本节中的错误配置可能会导致服务器误导并随后破坏您的 SSL 证书。
优化性能和安全性的技巧
通过 HTTPS 托管网站时,Caddy 提供了多种不同的方法来优化性能和安全性。 Caddy 开发人员自己提供的最有价值的技巧之一是使用 A+ 级 SSL 密码套件来提高安全标准,同时仍保持高性能水平。提高性能的另一种方法是在内容交付网络 (CDN) 上缓存图像或 CSS 文件等静态内容。
CDN 将经常访问的页面的缓存版本存储在更靠近用户地理位置的位置,从而减少页面加载时间的延迟。就安全性而言,请确保保留最新的备份,以防在故障排除或优化配置期间出现任何问题。
结论
遵循本指南后,您现在应该在 Linux 服务器上使用 Caddy 拥有一个通过 HTTPS 托管的网站。使用 HTTPS 对于保护您的网站并让访问者在浏览您的网站时安心至关重要。借助 Caddy,配置 HTTPS 的过程得到了简化和简化,使其成为优先考虑安全性和易用性的 Web 开发人员的绝佳选择。
在本指南中,我们介绍了在 Linux 上使用 Caddy 托管 HTTPS 网站的必要步骤。我们首先通过在服务器上安装 Linux、配置 DNS 设置并安装 Caddy 来设置环境。