如何设置 Let’s Encrypt 在 CentOS 7 上

保护您的网站

在本教程中,我们将概述一种在所有域上启用 HTTPS 的便捷方法,方法是使用 SSL 提供该过程的第一步。

每天都更频繁地需要使用 SSL 保护的域。 如果您的站点上还没有 SSL 来加密通过网络传输的数据,您应该重新考虑这个决定。 现代浏览器不再显示额外的安全层,而是在网站运行时显示警告 不是 有一个 SSL。 这实质上要求网站通过添加 SSL 来保持正面形象。

Let’s Encrypt 已成为每个关注保护其网站连接的大型企业的非常流行的解决方案。 为了帮助实现这一点,我们建议使用 Certbot。 Certbot 是一个开源的免费软件工具,用于自动安装和更新 SSL 证书。 Certbot 通过与 Let’s Encrypt,著名的 SSL 提供程序,通过为服务器创建 SSL。 最好的消息? Let’s Encrypt 是 完全免费

飞行前检查表

我们将使用 CentOS 7 Apache 2.4,与 没有控制面板 安装。 我们已经为所有域(domain.com 和 domain2.com)设置了 VirtualHosts。 我们以 root 用户身份登录到服务器,我们正在配置的域的 DNS 已经指向我们正在处理的服务器。 此外,DNS 必须配置为在我们正在处理的服务器上托管站点,因为 Let’s Encrypt 使用 DNS 确保您正在使用的服务器和站点的主机匹配。

第 1 步:安装软件包

广受欢迎的 EPEL(企业 Linux 的额外软件包)存储库包含我们安装 Certbot 所需的所有软件包,因此我们将首先进行设置:

yum -y install epel-release

接下来,我们将安装我们需要获取的两个包 Let’s Encrypt 运行:certbot 和 apache 连接器:

yum -y install certbot python-certbot-apache

第 2 步:获取证书 Let’s Encrypt

我们可以启动 certbot 程序来初始安装我们的 SSL。

certbot --apache

Certbot 是一个交互式程序,它首先会要求您接受他们的服务条款,并在我们获得证书之前添加一些其他配置信息。 在 certbot 解析托管域的运行配置后不久,您将到达此屏幕:

What domain names would you like to activate HTTPS for?
----------------------------------------------------------------
1: domain.com
2: www.domain.com
3: domain2.com
4: www.domain2.com
----------------------------------------------------------------
Select the appropriate numbers separated by commas and/or
spaces, or leave input blank to select all options shown
(Enter 'c' to cancel):

由于我们要向所有域添加证书,因此我们将输入留空以对所有域进行操作。 下一个问题与 HTTP 访问有关,以及我们是否要强制所有流量使用 HTTPS。 这通常是个好主意,所以我们选择“2”:

Please choose whether or not to redirect HTTP traffic to HTTPS,
removing HTTP access.
----------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration.
----------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Certbot 将完成订单流程,并自动配置 Apache 使用它们。 最后,它会让您知道证书的存储位置:

Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/domain.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/domain.com/privkey.pem
Your cert will expire on 2019-07-16. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

第 3 步:测试安装

您现在应该能够正常导航到您的域,并在 URL 栏中看到一个安全的 https:// 前缀,以及(取决于您的浏览器)一个绿色锁定图标:

您还可以使用我们的 SSL 检查器工具确认功能。

第 4 步:设置自动续订

现在 certbot 已经安装并且可以工作了,我们需要让它自动检查过期的证书。 作为 root,我们首先为我们的服务器打开 crontab:

crontab -e

在这种情况下,我在我们的 example 看起来像这样的服务器:

45 3 * * 6 /usr/local/letsencrypt/certbot-auto renew && systemctl reload httpd

此 cron 将在每周六凌晨 3 点 45 分运行 certbot renew 功能来更新任何已安装的即将到期的证书,然后重新加载 Apache 配置。 Save 添加此行后的crontab,它将立即生效。

完成的!

恭喜! 您的网站现在受到免费 SSL 证书的保护!

最后的想法要记住

  • 此过程应仅在没有控制面板的服务器上使用,例如我们的核心托管或非托管 CentOS 7 VPS 和专用服务器或托管私有云解决方案
  • 证书通常一次只有效 90 天,但由于我们设置了自动续订,证书将一直有效,直到域从服务器中删除。
  • 此外,请确保您使用定期检查的电子邮件,因为 SSL 到期和续订失败的通知将发送到在 certbot 安装期间设置的电子邮件地址。
  • 最后,运行 certbot 后添加到服务器的新域 不会自动获得新的 SSL! 您将需要重新运行certbot --apache再次命令设置它们。

如果您决定使用我们的完全托管 VPS 服务器之一,您可以控制 Let’s Encrypt 通过 WHM。 您将获得一个有用的控制面板来轻松调整服务器设置,您还将获得我们知识渊博且才华横溢的支持人员提供的 24/7/365 全天候支持!

仍有想法或问题? 不要犹豫,通过在 [email protected] 创建票证与我们联系,打开一个 聊天 与我们联系或致电 1-800-580-4985 联系我们。 我们随时待命以提供帮助!