首页 > 系统相关 >如何在 CentOS 7 上使用 Let‘s Encrypt 保护 Apache

如何在 CentOS 7 上使用 Let‘s Encrypt 保护 Apache

时间:2024-10-27 13:44:59浏览次数:6  
标签:Encrypt CentOS 证书 SSL Let com example certbot

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

简介

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.comwww.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 文件将起作用。

您还可以选择在启用 httphttps 访问之间进行选择,或者强制所有请求重定向到 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 博客,以获取重要更新。

标签:Encrypt,CentOS,证书,SSL,Let,com,example,certbot
From: https://blog.csdn.net/rubys007/article/details/143135770

相关文章

  • axios delete请求如何发给springboot
    1、发送请求体时前端axios的delete和post/put在传值上有点区别post和put有三个参数,url,data和config,所以在使用这两个时,可以写成axios.post(api,{ id:1});axios.put(api,{ id:1});第二个参数{id:1}会传给data。但是delete只有两个参数:url和config,data在config中,所以需......
  • Linux Centos安装ElasticSearch、分词器、es-head和Kibana
    1前言Java中比较流行的搜索引擎是Elasticsearch,传统的数据库搜索,使用like’关键字%’,当内容过多时性能会大大降低,所以Elasticsearch就出现了。下面,记录下Linux下Elasticsearch的安装过程。2Linux下安装Elasticsearch2.1下载和解压安装包官网下载地址:https://www.elastic.......
  • servlet创建模版使用
    首先我们的IDEA中servlet的模板2023版就取消掉了,需要我们自己去创建模板,打开设置找到点击文件和代码模板点击其他中的web找到下属的servletAnn....将内容代码复制,然后点击文件--+号,设置name,并且将代码粘贴进去我们可以在doPost中添加this.doGet(request,response);这样在新......
  • NewStar re ezencrypt wp
    NewStarreezencryptwpjadx打开[外链图片转存中…(img-qiKfNETY-1729913193217)]发现加密,点进去[外链图片转存中…(img-q5cEWSnD-1729913193218)]发现先AES加密,key是title,然后Base64编码,让母后doEncCheck,我们没找到doEncCHeck的源码官解提到有native标签说明函......
  • Centos7.x搭建FTP文件服务器
    ##参考网址https://blog.csdn.net/wqh0830/article/details/87743928#1、创建用户名并指定家目录,useradd-d/home/ftpuser-s/sbin/nologinftpuseruseradd-d/home/ftpuser-gumpay-s/sbin/nologinftpuser#-d-->更改用户的家目录为/home/ftpuse;此目录与数据目录保持一致#-......
  • 1.CentOS安装
    CentOS安装新建虚拟机 选择安装方式指定镜像方式选择操作系统类型 设置虚拟机名称和位置 指定磁盘大小 点击“自定义硬件” 指定内存大小指定镜像位置点击“开启此虚拟机” 选择“InstallCentOS7”并回车 选择语言 选择安装“GN......
  • Centos 定时同步阿里云系统时间
    构建定时任务脚本my_cron_script.sh脚本内容,供大家参考#!/bin/bashecho"当前时间:$(date)">>/home/cronjob/cron_output.txtNTP_SERVER="ntp.aliyun.com"echo"当前地址:$NTP_SERVER">>/home/cronjob/cron_output.txtsudontpdate$NTP_SERVER......
  • centos7.6离线安装Redmine 5.1.1教程
    centos7.6离线安装Redmine5.1.1教程网络上离线安装redmine资料少,有帮助大家请点赞总体思路:先申请一台云主机(天翼云、阿里、腾讯),安装相同版本的centos操作系统,有两个好处:一是用云主机下载Redmine的RPM包以及所有依赖,再复制到离线centos服务器上;二是可以先在云主机上安......
  • Servlet实现博客系统
    博客系统一。博客系统的基本情况:1.四个页面:(1)博客列表页,显示列表页上有哪些博客(2)博客详情页,点击某个博客可以观看对应的详情页(3)博客编辑页,用户可以在这里进行博客的编写(4)登陆页2。博客系统要实现的功能(1)实现博客列表:让页面从服务器上拿到博客数据(数据库)(2)实现博客详......
  • centos硬盘迁移
    CentOS系统硬盘将某旧硬盘所有内容迁移到新硬盘一.挂载新盘1.查看磁盘分区sudofdisk-l##或者lsblk查看磁盘sudolsblk-f2.创建新的分区sudofdisk/dev/vdc3.格式化分区sudomkfs.xfs/dev/vdc14.创建挂载点目录sudomkdir/data25.挂载分区sudomount/dev......