如何在 Ubuntu 16.04 上使用 Let's Encrypt 加密技术保护 Apache

介绍

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

SSL证书用于网络服务器中加密服务器和客户端之间的流量,为访问您的应用程序的用户提供额外的安全性。

前提条件

为了完成本指南,您将需要:

  • 具有非 root sudo 允许的用户的 Ubuntu 16.04 服务器,您可以通过遵循我们的 初始服务器设置指南
  • 安装了 一个或多个域名的 Apache 网络服务器,通过虚拟主机正确配置,指定了 ServerName

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

步骤 1 – 安装 Let’s Encrypt 客户端

Let's Encrypt 证书是通过在您的服务器上运行的客户端软件获取的。官方客户端叫做Certbot,其开发人员维护自己的Ubuntu软件存储库,具有最新的版本。

首先,添加存储器:

1sudo add-apt-repository ppa:certbot/certbot

接下来,更新包列表以获取新库的包信息:

1sudo apt-get update

最后,从apt-get的新存储库中安装 Certbot:

1sudo apt-get install python-certbot-apache

certbot Let’s Encrypt 客户端现在已经准备好使用。

第2步:设置SSL证书

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

要执行交互式安装并获得仅覆盖单个域的证书,请运行certbot命令,例如 example.com 是您的域:

1sudo certbot --apache -d example.com

如果您想安装一个适用于多个域或子域的单一证书,您可以将其作为附加参数传输到命令中。参数列表中的第一个域名将是使用 Let’s Encrypt 创建该证书的 base 域名,因此我们建议您在列表中先传输裸体的顶级域名,然后再添加任何附加的子域或外名:

1sudo certbot --apache -d example.com -d www.example.com

对于这个例子, base 域名将是 example.com

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

在依赖性安装后,您将收到一步一步的指南来自定义您的证书选项。您将被要求提供丢失的钥匙恢复和通知的电子邮件地址,并且您将能够选择允许httphttps访问或强迫所有请求重定向到https

安装完成后,您应该能够在 /etc/letsencrypt/live 找到生成的证书文件,您可以通过以下链接验证您的 SSL 证书的状态(不要忘了用您的 base 域代替 example.com):

1https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest

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

步骤 3 – 验证 Certbot 自动更新

让我们加密证书只持续90天,然而,我们安装的Certbot包通过通过系统d计时器每天两次运行certbot renew来为我们做好准备。

要测试更新过程,您可以使用certbot进行干跑:

1sudo certbot renew --dry-run

如果你没有看到任何错误,你都已经设置了。当需要时,Certbot会更新你的证书并重新加载Apache来接收更改。如果自动更新过程有时失败,Let’s Encrypt将向你指定的电子邮件发送消息,通知你你的证书即将到期。

结论

在本指南中,我们看到了如何从 Let’s Encrypt 安装免费的 SSL 证书,以便保护由 Apache 托管的网站. 我们建议您定期查看官方 Let’s Encrypt 博客的重要更新,并阅读 Certbot 文档有关 Certbot 客户端的更多细节。

Published At
Categories with 技术
comments powered by Disqus