letsencrypt.sh 配置详解:从零开始搭建 HTTPS 服务器
【免费下载链接】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
常见问题与解决方案
证书申请失败
如果遇到验证失败,检查以下事项:
- 域名解析是否正确
- 验证文件是否可公开访问
- 防火墙是否阻止了验证请求
续期问题处理
证书续期失败时,可以:
- 检查域名配置是否变更
- 验证钩子脚本是否正常工作
- 查看详细日志定位问题
最佳实践建议
- 测试环境先行:先在 Let's Encrypt 测试环境验证配置
- 备份配置:定期备份你的配置文件和钩子脚本
- 监控日志:设置日志监控,及时发现证书问题
通过这篇指南,你现在应该能够熟练使用 letsencrypt.sh 来管理和自动化你的 HTTPS 证书。记住,安全是一个持续的过程,定期更新和维护你的证书配置至关重要 🔒
【免费下载链接】dehydrated 项目地址: https://gitcode.com/gh_mirrors/le/letsencrypt.sh
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




