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

相关推荐
终焉暴龙王4 小时前
CTFHub web进阶 php Bypass disable_function通关攻略
开发语言·安全·web安全·php
自由鬼5 小时前
Apache HTTP Server 2.4.49 的目录遍历漏洞CVE-2021-41773
网络协议·http·apache
lang201509285 小时前
Apache Ignite 索引(Indexes)定义和使用
apache·ignite
百川5 小时前
Apache文件解析漏洞
web安全·apache
风吹落叶花飘荡5 小时前
Ubuntu系统 系统盘和数据盘扩容具体操作
linux·运维·ubuntu
贾斯汀玛尔斯8 小时前
ubuntu/centos系统ping 不通域名的解决方案
linux·ubuntu·centos
翟天保Steven11 小时前
Ubuntu-安装Epics教程
linux·ubuntu·epics
qq_4309085712 小时前
网络安全-机遇与挑战
安全
胖胖胖胖胖虎13 小时前
Apache Ranger 权限管理
apache
Tipriest_17 小时前
离线进行apt安装的过程(在只能本地传输的ubuntu主机上使用apt安装)
linux·运维·ubuntu·apt·install·deb