如何在 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 客户端的更多详细信息。

相关推荐
Neolnfra6 分钟前
渗透测试标准化流程
开发语言·安全·web安全·http·网络安全·https·系统安全
WZTTMoon27 分钟前
Apache Tomcat 体系结构深度解析
java·tomcat·apache
fiveym33 分钟前
Apache HTTP 服务搭建全攻略
网络协议·http·apache
qq_3391911439 分钟前
ubuntu 配置ulimit -n , ubuntu配置文件描述符数量, ubuntu优化,ubuntu系统调优
linux·运维·ubuntu
wdfk_prog41 分钟前
Ubuntu 虚拟机根文件系统损坏故障的深度分析与修复
linux·数据库·ubuntu
奋飞安全1 小时前
给你的Ida插上翅膀
安全·逆向
llxxyy卢2 小时前
逻辑越权之找回机制接口安全
安全
pusheng20252 小时前
普晟传感直播预告 |重塑安全边界:储能与AI数据中心的锂电风险、气体探测技术革新与可量化风险管控
人工智能·安全
云计算练习生2 小时前
渗透测试行业术语扫盲(第十六篇)—— 红蓝对抗与演练类
网络·安全·网络安全·信息安全·渗透测试术语
violet-lz2 小时前
【Linux】VMware虚拟机中的Ubuntu操作系统主文件夹扩容
linux·运维·ubuntu