如何在Ubuntu16.04上为多个Apache虚拟主机设置Let'sEncrypt证书
状态: 已弃用
本文已弃用,不再维护。
原因
由于 Certbot 的更改,本文中的内容已被我们的主要 Apache 和 Let's Encrypt Ubuntu 16.04 教程取代。
请参阅
本文可能仍可用作参考,但可能不起作用或无法遵循最佳实践。 我们强烈建议在 Ubuntu 16.04 上使用 How To Secure Apache with Let's Encrypt。
介绍
SSL 证书在 Web 服务器中用于加密服务器和客户端之间的流量,为访问您的应用程序的用户提供额外的安全性。 Let's Encrypt 提供了一种免费获取和安装可信证书的简单方法。 本教程将向您展示如何从 Let's Encrypt 设置 TLS/SSL 证书,以保护 Apache 上的多个虚拟主机。
先决条件
为了完成本指南,您需要:
- 一台具有非 root sudo 用户和防火墙的 16.04 服务器,您可以按照我们的 Initial Ubuntu 16.04 服务器设置教程 指南进行设置
- Apache Web 服务器安装并托管了多个虚拟主机,每个虚拟主机都有自己的配置文件,您可以按照 Apache 虚拟主机教程 进行设置。
出于本指南的目的,我们将为域 example.com
和 test.com
安装 Let's Encrypt 证书。 这些将在整个指南中被引用,但您应该在跟随时将它们替换为您自己的域。
第 1 步 — 安装 Let's Encrypt 客户端
Let's Encrypt 证书是通过在您的服务器上运行的客户端软件获取的。 官方客户端称为 Certbot,其开发人员维护自己的 Ubuntu 软件存储库,并提供最新版本。 由于 Certbot 处于如此积极的开发阶段,因此值得使用此存储库来安装比 Ubuntu 默认提供的更新版本。
首先,添加存储库:
sudo add-apt-repository ppa:certbot/certbot
您需要按 ENTER
接受。 之后,更新包列表以获取新存储库的包信息:
sudo apt-get update
最后,使用 apt-get
从新存储库安装 Certbot:
sudo apt-get install python-certbot-apache
certbot
Let's Encrypt 客户端现在可以使用了。 接下来,我们将创建证书。
第 2 步 — 设置证书
为 Apache 生成 SSL 证书很简单。 Certbot 将自动获取并安装对作为参数提供的域有效的新 SSL 证书。
注意:即使域名不同,也可以将多个 Let's Encrypt 证书捆绑在一起。 但是,建议您为唯一的域名创建单独的证书。
因此,您需要多次执行此步骤(每个虚拟主机一次)。 作为一般经验法则,只有特定域的子域应该捆绑在一起。
以下命令在 -d
标志后面使用逗号分隔的域名列表作为参数。 列出的第一个域名是 Certbot 用于创建证书的基本域。 出于这个原因,我们建议您首先传递裸顶级域名,然后是任何其他子域或别名。
启动 example.com
的交互式安装,为该域创建捆绑证书:
sudo certbot --apache -d example.com
您将被要求提供丢失密钥恢复和通知的电子邮件地址,并且您将能够选择是否将所有 http
流量重定向到 https
,从而删除 [ X196X] 访问。 强制 https
更安全,因此您应该选择它,除非您特别需要同时允许两者。
安装完成后,您可以在/etc/letsencrypt/live
找到生成的证书文件。 您可以在 https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest
验证 SSL 证书的状态,现在您可以使用 https
前缀访问您的网站。 请记住对您使用的每个域再次执行此步骤。
第 3 步 — 验证 Certbot 自动续订
Let's Encrypt 证书仅持续 90 天。 但是,我们安装的 certbot 包通过 systemd 计时器每天运行两次 certbot renew
来为我们解决这个问题。 在非系统发行版上,此功能由放置在 /etc/cron.d
中的 cron 脚本提供。 该任务每天运行两次,并将更新到期后三十天内的任何证书。
要测试更新过程,您可以使用 certbot
进行试运行:
sudo certbot renew --dry-run
如果您没有看到任何错误,则说明一切就绪。 必要时,Certbot 将更新您的证书并重新加载 Apache 以获取更改。 如果自动续订过程失败,Let's Encrypt 将向您指定的电子邮件发送一条消息,在您的证书即将到期时警告您。
结论
在本指南中,我们了解了如何从 Let's Encrypt 安装免费的 SSL 证书,以保护 Apache 上的多个虚拟主机。 我们建议您不定期查看官方 Let's Encrypt 博客 以了解重要更新,并阅读 Certbot 文档 了解有关 Certbot 客户端的更多详细信息。