前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
Let’s Encrypt 是一个证书颁发机构(CA),为传输层安全性(TLS)加密提供免费证书,从而在 Web 服务器上启用加密的 HTTPS。它通过提供一个软件客户端 Certbot 简化了证书的创建、验证、签名、安装和更新过程。
在本教程中,您将使用 Certbot 在运行 Apache 作为 Web 服务器的 CentOS 7 服务器上设置来自 Let’s Encrypt 的 TLS/SSL 证书。此外,您将使用定时作业自动化证书更新过程,您可以通过阅读《如何使用 Cron 在 VPS 上自动化任务》来了解更多信息。
先决条件
要完成本指南,您需要:
- 通过遵循 CentOS 7 初始服务器设置指南设置的一个 CentOS 7 服务器,具有具有
sudo
权限的非根用户。 - 通过遵循新 CentOS 7 服务器的附加推荐步骤指南配置的基本防火墙。
- 在 CentOS 7 服务器上安装了 Apache,并配置了虚拟主机。您可以通过遵循我们的教程《如何在 CentOS 7 上安装 Apache Web 服务器》来了解如何设置。确保您有一个用于您的域的虚拟主机文件。本教程将使用
/etc/httpd/sites-available/example.com.conf
作为示例。 - 拥有或控制您希望使用证书的注册域名。如果您还没有注册域名,可以在 Namecheap 上购买,或者在 Freenom 上免费获取,或者使用您选择的域名注册商。
- 一个 DNS A 记录,将您的域指向服务器的公共 IP 地址。您可以通过阅读 DigitalOcean DNS 介绍中的详细信息来了解如何在 DigitalOcean 平台上添加它们。由于 Let’s Encrypt 验证您拥有要为其颁发证书的域的方式,DNS A 记录是必需的。例如,如果您想要为
example.com
获取证书,那么该域必须解析到您的服务器才能使验证过程正常工作。我们的设置将使用example.com
和www.example.com
作为域名,这两个域名都需要有效的 DNS 记录。
当您完成所有这些先决条件后,继续安装 Let’s Encrypt 客户端软件。
步骤 1 — 安装 Certbot Let’s Encrypt 客户端
要使用 Let’s Encrypt 获取 SSL 证书,您首先需要安装 Certbot 和 mod_ssl
,这是一个为 SSL v3 加密提供支持的 Apache 模块。
certbot
软件包默认情况下不会通过软件包管理器提供。您需要启用 EPEL 仓库来安装 Certbot。
要添加 CentOS 7 EPEL 仓库,请运行以下命令:
sudo yum install epel-release
现在您可以访问该仓库,安装所有必需的软件包:
sudo yum install certbot python2-certbot-apache mod_ssl
在安装过程中,您将被询问是否导入 GPG 密钥。该密钥将验证您正在安装的软件包的真实性。为了允许安装完成,请在提示时输入 y
并按 ENTER
键。
安装了这些服务后,您现在可以运行 Certbot 并获取您的证书。
步骤 2 — 获取证书
现在 Certbot 已安装,您可以使用它为您的域请求 SSL 证书。
使用 certbot
Let’s Encrypt 客户端为 Apache 生成 SSL 证书自动化了过程中的许多步骤。该客户端将自动获取并安装一个新的 SSL 证书,该证书对您提供的域是有效的。
要执行交互式安装并获取仅覆盖单个域的证书,请使用以下命令运行 certbot
:
sudo certbot --apache -d example.com
这将使用 --apache
插件运行 certbot
,并使用 -d
标志指定要为其配置证书的域。
如果要安装一个对多个域或子域有效的单个证书,您可以将它们作为额外参数传递给命令,并使用 -d
标志标记每个新域或子域。参数列表中的第一个域名将是 Let’s Encrypt 用于创建证书的基本域。因此,请将基本域名作为参数列表中的第一个域名,然后跟随任何其他子域或别名:
sudo certbot --apache -d example.com -d www.example.com
在此示例中,基本域是 example.com
。
certbot
实用程序还可以在证书请求过程中提示您输入域信息。要使用此功能,请不带任何域调用 certbot
:
sudo certbot --apache
程序将向您展示逐步指南以自定义您的证书选项。它将要求您提供用于丢失密钥恢复和通知的电子邮件地址,然后提示您同意服务条款。如果您没有在命令行上指定您的域,程序将要求您输入。如果您的虚拟主机文件没有使用 ServerName
指令明确指定它们提供的域,程序将要求您选择虚拟主机文件。在大多数情况下,默认的 ssl.conf
文件将起作用。
您还可以选择在启用 http
和 https
访问之间进行选择,或者强制所有请求重定向到 https
。出于更好的安全性考虑,建议选择选项 2: Redirect
,如果您没有特殊需要允许未加密的连接。选择您的选项,然后按 ENTER
键。
请选择是否将 HTTP 流量重定向到 HTTPS,删除 HTTP 访问。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: 不重定向 - 对 Web 服务器配置不做进一步更改。
2: 重定向 - 使所有请求重定向到安全的 HTTPS 访问。对于新站点,或者如果您确信您的站点在 HTTPS 上运行,请选择此选项。您可以通过编辑您的 Web 服务器配置来撤消此更改。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
选择适当的数字 [1-2] 然后 [enter](按 'c' 取消):2
安装成功后,您将看到类似以下的消息:
重要说明:
- 恭喜!您的证书和链已保存在:
/etc/letsencrypt/live/example.com/fullchain.pem
您的密钥文件已保存在:
/etc/letsencrypt/live/example.com/privkey.pem
您的证书将在 2019-08-14 到期。在将来,要获取此证书的新版本或调整版本,只需再次运行 certbot 并使用 "certonly" 选项。要非交互式地更新 *所有* 您的证书,请运行 "certbot renew"
- 如果您喜欢 Certbot,请考虑通过以下方式支持我们的工作:
向 ISRG / Let's Encrypt 捐赠: https://letsencrypt.org/donate
向 EFF 捐赠: https://eff.org/donate-le
生成的证书文件将在 /etc/letsencrypt/live
目录中以您的基本域命名的子目录中可用。
现在您的证书已下载、安装和加载,您可以检查您的 SSL 证书状态,以确保一切正常工作。
步骤 3 — 检查您的证书状态
此时,您可以通过使用云安全公司 Qualys 的 SSL 服务器测试来确保 Certbot 正确创建了您的 SSL 证书。
在您首选的 Web 浏览器中打开以下链接,将 example.com
替换为您的基础域名:
https://www.ssllabs.com/ssltest/analyze.html?d=example.com
您将会进入一个页面,该页面会立即开始测试与您服务器的 SSL 连接:
!SSL 服务器测试
一旦测试开始运行,可能需要几分钟才能完成。测试的状态将在您的浏览器中更新。
当测试完成时,页面将显示一个字母等级,用于评估您服务器配置的安全性和质量。在撰写本文时,默认设置将获得A等级:
!SSL 报告 - A
有关 SSL Labs 如何确定这些等级的更多信息,请查看 SSL Labs Grading 帖子,其中详细介绍了 2018 年 1 月对评分方案的更新。
尝试使用 https://
重新加载您的网站,并注意您浏览器的安全指示。现在,它将指示该站点已得到适当的安全保护,通常会显示一个绿色的锁图标。
有了您的 SSL 证书已经验证,下一步是设置证书的自动更新,以保持证书的有效性。
步骤 4 — 设置自动续订
Let’s Encrypt 证书有效期为 90 天,但建议您每 60 天续订一次证书,以留有一定的错误余地。因此,最佳做法是自动化此过程,定期检查并续订证书。
首先,让我们来看一下您将用于续订证书的命令。certbot
Let’s Encrypt 客户端具有一个 renew
命令,它会自动检查当前安装的证书,并在距离到期日期不足 30 天时尝试续订它们。通过使用 --dry-run
选项,您可以运行此任务的模拟,以测试 renew
的工作方式:
sudo certbot renew --dry-run
输出应该类似于以下内容:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/example.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator apache, Installer apache
Starting new HTTPS connection (1): acme-staging-v02.api.letsencrypt.org
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for example.com
http-01 challenge for www.example.com
Waiting for verification...
Cleaning up challenges
Resetting dropped connection: acme-staging-v02.api.letsencrypt.org
- - - - - - - - - - - - - - - - - - - - - - - - -
## 结论
在本指南中,您安装了 Let's Encrypt Certbot 客户端,为您的域名下载了 SSL 证书,并设置了自动证书更新。如果您对使用 Certbot 有任何疑问,可以查阅官方 Certbot 文档。我们还建议您定期查看官方 Let’s Encrypt 博客,以获取重要更新。
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 如何在 CentOS 7 上使用 Let‘s Encrypt 保护 Apache
发表评论 取消回复