使用 acme.sh 免费获取 SSL 证书
使用 acme.sh 免费获取 SSL 证书
本文将详细介绍如何使用 acme.sh
脚本申请 Let’s Encrypt 免费 SSL 证书,并在 Nginx 服务器上配置 HTTPS。
🚀 1. 安装 acme.sh
首先在服务器上安装 acme.sh
脚本:
1 | curl https://get.acme.sh | sh -s email=your@email.com |
注意: 请将
your@email.com
替换为您的真实邮箱地址
🔑 2. 申请 SSL 证书
使用以下命令申请证书:
1 | ~/.acme.sh/acme.sh --issue -d jay-ms.site -d www.jay-ms.site -w /var/blog |
参数说明
-d jay-ms.site
— 主域名-d www.jay-ms.site
— 带 www 的子域名(可选)-w /var/blog
— 网站根目录,acme.sh 会在此目录创建验证文件
验证原理: Let’s Encrypt 会访问
http://jay-ms.site/.well-known/acme-challenge/...
来验证域名所有权
📁 3. 部署证书到 Nginx
3.1 创建证书目录
为了便于管理,建议创建专门的证书目录:
1 | sudo mkdir -p /etc/nginx/ssl |
3.2 安装证书
将签发的证书和私钥部署到 Nginx 目录,并设置自动更新:
1 | ~/.acme.sh/acme.sh --install-cert -d jay-ms.site \ |
⚙️ 4. 配置 Nginx 启用 HTTPS
编辑 Nginx 配置文件 /etc/nginx/conf.d/default.conf
,添加以下配置:
主要配置项
- 启用 HTTPS:使用 acme.sh 生成的证书文件
- 证书:
/etc/nginx/ssl/jay-ms.site.cer
- 私钥:
/etc/nginx/ssl/jay-ms.site.key
- 证书:
- HTTP 重定向:自动将 HTTP 请求重定向到 HTTPS
- SSL 协议优化:配置安全的 SSL/TLS 协议
示例配置
1 | server { |
🔄 5. 自动续期
acme.sh
会自动添加到 crontab 中,每天检查证书是否需要续期。您也可以手动检查:
1 | # 查看自动续期任务 |
✅ 验证结果
配置完成后,访问您的网站:
http://jay-ms.site
→ 自动跳转到https://jay-ms.site
- 浏览器地址栏显示🔒图标,表示 HTTPS 连接成功
📚 参考资料
评论