letsencrypt.sh 配置详解:从零开始搭建 HTTPS 服务器

letsencrypt.sh 配置详解:从零开始搭建 HTTPS 服务器

【免费下载链接】dehydrated 【免费下载链接】dehydrated 项目地址: https://gitcode.com/gh_mirrors/le/letsencrypt.sh

想要为你的网站快速部署免费的 HTTPS 证书吗?letsencrypt.sh(也称为 dehydrated)是一个简单高效的 ACME 客户端,专门用于自动化获取和管理 Let's Encrypt SSL/TLS 证书。这篇完整指南将带你从零开始,轻松搭建安全的 HTTPS 服务器 🚀

为什么选择 letsencrypt.sh?

letsencrypt.sh 以其轻量级设计高度可定制性而闻名。与其他 ACME 客户端相比,它具有以下优势:

  • 极简依赖:仅需 Bash 和 OpenSSL
  • 配置灵活:支持多种验证方式和自定义钩子脚本
  • 自动化程度高:轻松集成到现有部署流程中

准备工作与环境配置

系统要求检查

在开始之前,请确保你的系统满足以下要求:

  • Linux/Unix 操作系统
  • Bash shell
  • OpenSSL 工具包
  • 可访问的域名和服务器

获取 letsencrypt.sh

你可以通过以下命令获取最新版本的 letsencrypt.sh:

git clone https://gitcode.com/gh_mirrors/le/letsencrypt.sh
cd letsencrypt.sh

核心配置文件详解

主配置文件设置

letsencrypt.sh 的核心配置主要在 docs/examples/config 文件中。让我们看看关键配置项:

# 证书存储目录
BASEDIR="/etc/letsencrypt.sh"

# 域名配置文件
DOMAINS_TXT="/etc/letsencrypt.sh/domains.txt"

# 使用 Let's Encrypt 测试环境(正式使用时注释掉)
CA="https://acme-staging-v02.api.letsencrypt.org/directory"

域名配置文件

docs/examples/domains.txt 中定义你的域名:

example.com www.example.com
subdomain.example.com

验证方式选择与配置

letsencrypt.sh 支持多种域名验证方式,每种方式都有其适用场景:

HTTP-01 验证(推荐新手)

这是最常用的验证方式,通过在网站根目录创建特定文件来完成验证:

# 在配置文件中启用 HTTP 验证
CHALLENGETYPE="http-01"
WELLKNOWN="/var/www/dehydrated"

DNS-01 验证(高级用法)

适用于无法直接访问 Web 服务器的情况,通过 DNS 记录完成验证:

CHALLENGETYPE="dns-01"

钩子脚本定制化

钩子脚本是 letsencrypt.sh 的强大功能,允许你在证书生命周期不同阶段执行自定义操作。

基础钩子脚本示例

参考 docs/examples/hook.sh 创建你的钩子脚本:

#!/bin/bash

deploy_challenge() {
    local DOMAIN="${1}" TOKEN_FILENAME="${2}" TOKEN_VALUE="${3}"
    echo "部署挑战:$DOMAIN"
}

clean_challenge() {
    local DOMAIN="${1}" TOKEN_FILENAME="${2}" TOKEN_VALUE="${3}"
    echo "清理挑战:$DOMAIN"
}

实战:获取你的第一个证书

步骤 1:初始化配置

# 创建必要目录
mkdir -p /etc/letsencrypt.sh
mkdir -p /var/www/dehydrated

# 复制配置文件
cp docs/examples/config /etc/letsencrypt.sh/
cp docs/examples/domains.txt /etc/letsencrypt.sh/

步骤 2:执行证书申请

# 使用 dehydrated 脚本申请证书
./dehydrated --register --accept-terms
./dehydrated -c

步骤 3:验证与部署

检查生成的证书文件:

ls -la /etc/letsencrypt.sh/certs/

自动化与定时任务

为了实现证书自动续期,可以设置定时任务:

# 编辑 crontab
crontab -e

# 添加以下行(每周日凌晨 3 点检查续期)
0 3 * * 0 /path/to/letsencrypt.sh/dehydrated -c

常见问题与解决方案

证书申请失败

如果遇到验证失败,检查以下事项:

  • 域名解析是否正确
  • 验证文件是否可公开访问
  • 防火墙是否阻止了验证请求

续期问题处理

证书续期失败时,可以:

  • 检查域名配置是否变更
  • 验证钩子脚本是否正常工作
  • 查看详细日志定位问题

最佳实践建议

  1. 测试环境先行:先在 Let's Encrypt 测试环境验证配置
  2. 备份配置:定期备份你的配置文件和钩子脚本
  3. 监控日志:设置日志监控,及时发现证书问题

通过这篇指南,你现在应该能够熟练使用 letsencrypt.sh 来管理和自动化你的 HTTPS 证书。记住,安全是一个持续的过程,定期更新和维护你的证书配置至关重要 🔒

letsencrypt.sh 项目标识

【免费下载链接】dehydrated 【免费下载链接】dehydrated 项目地址: https://gitcode.com/gh_mirrors/le/letsencrypt.sh

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值