返回

如何在 CentOS 7 上利用 Dehydrated 获取 Let's Encrypt 证书,保障网站网络安全?

Linux

如何使用 Dehydrated 在 CentOS 7 上获取 Let's Encrypt 证书

简介

加密是保护网络通信和数据的至关重要的组成部分。Let's Encrypt 是一种免费且易于使用的证书颁发机构 (CA),提供 SSL/TLS 证书,用于加密网站和在线服务。Dehydrated 是一个自动化的证书管理程序,简化了 Let's Encrypt 证书的获取、续订和撤销过程。本教程将引导你逐步在 CentOS 7 服务器上安装和配置 Dehydrated,以利用 Let's Encrypt 证书保护你的网站。

先决条件

  • 运行 CentOS 7 或更高版本的服务器
  • 安装 Apache/Nginx 或其他 Web 服务器
  • 对 DNS 设置有控制权
  • 拥有 root 权限

步骤 1:安装 Dehydrated

在你的服务器上打开终端窗口并执行以下命令以安装 Dehydrated:

sudo yum install epel-release
sudo yum install dehydrated

步骤 2:配置 Dehydrated

接下来,你将配置 Dehydrated 的设置。编辑 /etc/dehydrated/config 文件并进行以下更改:

  • WELLKNOWN 设置为你希望 Dehydrated 存储 ACME 挑战文件的位置。例如:/var/www/dehydrated
  • HOOK 设置为指向你希望 Dehydrated 在部署挑战令牌时调用的钩子脚本。例如:/etc/dehydrated/hook.sh

步骤 3:创建钩子脚本

钩子脚本负责部署挑战令牌。对于 Apache,它可以如下所示:

#!/bin/bash
cert_dir=$1
challenge_type=$2
challenge_token=$3
challenge_url=$4
certbot_hook deploy_challenge --cert-name ${cert_dir} --challenge-type ${challenge_type} --challenge-token ${challenge_token} --challenge-url ${challenge_url}

对于 Nginx,它可以如下所示:

#!/bin/bash
cert_dir=$1
challenge_type=$2
challenge_token=$3
challenge_url=$4
certbot_hook deploy_challenge --cert-name ${cert_dir} --challenge-type ${challenge_type} --challenge-token ${challenge_token} --challenge-url ${challenge_url}

确保此脚本具有可执行权限:

sudo chmod +x /etc/dehydrated/hook.sh

步骤 4:配置 Web 服务器

Apache

/etc/httpd/conf/httpd.conf 中,添加以下行:

Alias /.well-known/acme-challenge /var/www/dehydrated
<Directory /var/www/dehydrated>
   Options None
   AllowOverride None
   <IfModule mod_authz_core.c>
      Require all granted
   </IfModule>
</Directory>

Nginx

/etc/nginx/nginx.conf 中,添加以下行:

location /.well-known/acme-challenge {
   alias /var/www/dehydrated;
   allow all;
}

步骤 5:获取 Let's Encrypt 证书

现在,你可以使用以下命令获取 Let's Encrypt 证书:

dehydrated --register --accept-terms
dehydrated --cron

步骤 6:续订证书

Dehydrated 会自动续订证书。它将定期运行并检查是否有需要续订的证书。

故障排除

如果你在安装或使用 Dehydrated 时遇到问题,请检查以下事项:

  • 确保你的 DNS 设置正确。
  • 确保你的 Web 服务器正确配置,可以访问 ACME 挑战文件。
  • 检查 Dehydrated 日志以查找错误消息。

常见问题解答

  1. 什么是 Let's Encrypt?
    Let's Encrypt 是一种免费且易于使用的证书颁发机构,提供 SSL/TLS 证书,用于加密网站和在线服务。

  2. 什么是 Dehydrated?
    Dehydrated 是一个自动化的证书管理程序,简化了 Let's Encrypt 证书的获取、续订和撤销过程。

  3. 为什么我需要在网站上使用 SSL/TLS 证书?
    SSL/TLS 证书加密网络通信和数据,保护用户隐私和信息安全。

  4. Dehydrated 如何工作?
    Dehydrated 协调与 Let's Encrypt 的通信,获取、部署和续订 SSL/TLS 证书。

  5. Dehydrated 是否适用于所有 Web 服务器?
    Dehydrated 适用于 Apache、Nginx 和其他支持 ACME 协议的 Web 服务器。