如何在 Ubuntu 16.04 上使用 Let‘s Encrypt 为 Apache 添加安全证书

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

介绍

本教程将向您展示如何在运行 Apache 作为 Web 服务器的 Ubuntu 16.04 服务器上设置来自 Let's Encrypt 的 TLS/SSL 证书。

SSL 证书在 Web 服务器内部使用,用于加密服务器和客户端之间的流量,为访问您的应用程序的用户提供额外的安全性。Let's Encrypt 提供了一种轻松获取和安装免费受信任证书的方式。

先决条件

要完成本指南,您需要:

  • 一个安装了 Apache Web 服务器的 Ubuntu 16.04 服务器,具有非根的 sudo 启用用户,您可以按照我们的《初始化服务器设置指南》进行设置
  • 通过虚拟主机正确配置了一个或多个域名的 Apache Web 服务器,这些虚拟主机指定了 ServerName

当您准备好继续时,请使用您的 sudo 启用帐户登录到服务器。

步骤 1 --- 安装 Let's Encrypt 客户端

Let's Encrypt 证书是通过在服务器上运行的客户端软件获取的。官方客户端称为 Certbot,其开发人员维护了自己的 Ubuntu 软件仓库,其中包含最新版本。由于 Certbot 处于活跃开发中,因此值得使用该存储库安装比 Ubuntu 默认提供的更新版本。

首先,添加存储库:

command 复制代码
sudo add-apt-repository ppa:certbot/certbot

您需要按 ENTER 键接受。之后,更新软件包列表以获取新存储库的软件包信息:

command 复制代码
sudo apt-get update

最后,使用 apt-get 从新存储库安装 Certbot:

command 复制代码
sudo apt-get install python-certbot-apache

certbot Let's Encrypt 客户端现在已准备就绪。

步骤 2 --- 设置 SSL 证书

使用 Certbot 为 Apache 生成 SSL 证书非常简单。客户端将自动获取并安装一个新的 SSL 证书,该证书对作为参数提供的域名有效。

要执行交互式安装并获取仅涵盖单个域的证书,请像下面这样运行 certbot 命令,其中 example.com 是您的域:

command 复制代码
sudo certbot --apache -d example.com

如果要安装一个对多个域或子域有效的单个证书,可以将它们作为附加参数传递给命令。参数列表中的第一个域名将是 Let's Encrypt 用于创建证书的基本域,因此我们建议您首先传递裸顶级域名,然后是任何其他子域或别名:

command 复制代码
sudo certbot --apache -d example.com -d www.example.com

在此示例中,基本 域将是 example.com

如果您有多个虚拟主机,应该为每个虚拟主机运行 certbot 以生成每个新证书。您可以以任何方式在多个虚拟主机之间分发多个域和子域。

安装依赖项后,您将被要求逐步指导以自定义证书选项。您将被要求提供用于丢失密钥恢复和通知的电子邮件地址,并且您将能够选择启用 httphttps 访问,或者强制所有请求重定向到 https。通常最安全的做法是要求 https,除非您有特定需要使用未加密的 http 流量。

安装完成后,您应该能够在 /etc/letsencrypt/live 找到生成的证书文件。您可以使用以下链接验证 SSL 证书的状态(不要忘记将 example.com 替换为您的基本域):

复制代码
https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest

现在,您应该能够使用 https 前缀访问您的网站。

步骤 3 --- 验证 Certbot 自动续订

Let's Encrypt 证书只有 90 天的有效期。但是,我们安装的 certbot 软件包通过 systemd 定时器每天两次运行 certbot renew 来为我们处理这个问题。在非 systemd 发行版上,此功能由放置在 /etc/cron.d 中的 cron 脚本提供。该任务每天运行两次,并将更新任何在到期前三十天内的证书。

要测试续订过程,您可以使用 certbot 进行干运行:

command 复制代码
sudo certbot renew --dry-run

如果没有看到错误,那么一切都设置好了。必要时,Certbot 将更新您的证书并重新加载 Apache 以应用更改。如果自动续订过程失败,Let's Encrypt 将向您指定的电子邮件发送消息,警告您的证书即将到期。

结论

在本指南中,我们看到了如何安装来自 Let's Encrypt 的免费 SSL 证书,以保护使用 Apache 托管的网站。我们建议您定期查看官方 Let's Encrypt 博客以获取重要更新,并阅读 Certbot 文档以获取有关 Certbot 客户端的更多详细信息。

相关推荐
网安蟹佬霸7 小时前
WAF绕过技术实战:从规则检测到编码绕过全指南(2026最新版,附Payload集与自动化脚本)
运维·安全·网络安全·架构·自动化·网安
明王明王12 小时前
Ubuntu 26.04 使用 Windows Spotlight:给 Bing Wallpaper 加上 Spotlight 支持
linux·windows·ubuntu
夜月yeyue12 小时前
SOME/IP 服务模型
linux·服务器·单片机·安全·车载系统
夜月yeyue13 小时前
SOME/IP-SD 服务发现故障
网络·单片机·网络协议·tcp/ip·安全·服务发现
江湖有缘13 小时前
Docker开源项目: 基于Ubuntu系统部署ExpenseOwl自托管记账工具实战教程
ubuntu·docker·开源
txg66613 小时前
LLM 驱动漏洞传播验证:TransferFuzz-Pro 如何自动调试“继承“来的安全债
人工智能·深度学习·安全
一直C13 小时前
【数据结构】哈希表+算法复杂度与经典排序查找(C语言)
java·linux·开发语言·数据结构·算法·ubuntu·散列表
戴西软件13 小时前
国内有哪些数据轻量化格式转换软件?
数据库·算法·安全·信息可视化·自动化·rpa
数字护盾(和中)14 小时前
和中科技剖析 EDR 绕过全链路,AMSI、ETW 规避技术与防御对策
运维·网络·人工智能·科技·安全·web安全
网安蟹佬霸16 小时前
区块链与智能合约安全实战:从Solidity审计到DeFi漏洞深度剖析
运维·前端·网络·安全·自动化·区块链·智能合约