###介绍
本教程将向您展示如何在运行 Apache 作为 Web 服务器的 Ubuntu 14.04 服务器上从 Let's Encrypt 设置 TLS/SSL 证书。
SSL 证书在 Web 服务器中用于加密服务器和客户端之间的流量,为访问您的应用程序的用户提供额外的安全性。 Let's Encrypt 提供了一种免费获取和安装可信证书的简单方法。
- 先决条件
为了完成本指南,您需要:
当您准备好继续前进时,使用启用了 sudo 的帐户登录到您的服务器。
- Step 1 — 下载 Let's Encrypt 客户端
使用 Let's Encrypt 获取 SSL 证书的第一步是在您的服务器上安装 certbot
软件。 Certbot 开发人员使用最新版本的软件维护自己的 Ubuntu 软件存储库。 由于 Certbot 处于如此积极的开发中,因此值得使用此存储库来安装比 Ubuntu 提供的更新的 Certbot。
首先,添加存储库:
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 客户端现在可以使用了。
- Step 2 — 设置 SSL 证书
使用 certbot
Let's Encrypt 客户端为 Apache 生成 SSL 证书非常简单。 客户端将自动获取并安装对作为参数提供的域有效的新 SSL 证书。
要执行交互式安装并获取仅涵盖单个域的证书,请使用以下命令运行 certbot
命令:
sudo certbot --apache -d example.com
如果要安装对多个域或子域有效的单个证书,可以将它们作为附加参数传递给命令。 参数列表中的第一个域名将是 Let's Encrypt 用于创建证书的 base 域,因此我们建议您将裸顶级域名作为列表中的第一个传递,后跟任何其他子域或别名:
sudo certbot --apache -d example.com -d www.example.com
对于此示例,base 域将为 example.com
。
系统将提示您提供丢失密钥恢复和通知的电子邮件地址,并且您需要同意 Let's Encrypt 服务条款。 然后,您将被要求在启用 http
和 https
访问或强制所有请求重定向到 https
之间进行选择。
安装完成后,您应该可以在 /etc/letsencrypt/live
找到生成的证书文件。 您可以使用以下链接验证 SSL 证书的状态(不要忘记将 example.com 替换为您的 base 域):
https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest
您现在应该可以使用 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 客户端的更多详细信息。