|
@@ -0,0 +1,168 @@
|
|
|
+# 使用acme.sh申请和安装SSL证书教程
|
|
|
+
|
|
|
+## 1. 安装acme.sh
|
|
|
+
|
|
|
+```bash
|
|
|
+# 安装所需工具
|
|
|
+apt update
|
|
|
+apt install -y socat curl wget
|
|
|
+
|
|
|
+# 安装acme.sh
|
|
|
+curl https://get.acme.sh | sh -s email=mall@niusenyun.com
|
|
|
+
|
|
|
+# 重新加载环境变量
|
|
|
+source ~/.bashrc
|
|
|
+```
|
|
|
+
|
|
|
+## 2. 清除已存在的证书
|
|
|
+
|
|
|
+```bash
|
|
|
+# 删除已存在的证书文件
|
|
|
+rm -f /root/frp/cert.pem /root/frp/key.pem
|
|
|
+
|
|
|
+# 移除acme.sh中的证书记录
|
|
|
+acme.sh --remove -d niusenyun.com
|
|
|
+acme.sh --remove -d "*.niusenyun.com"
|
|
|
+
|
|
|
+# 清除acme.sh的域名配置
|
|
|
+rm -rf ~/.acme.sh/niusenyun.com
|
|
|
+rm -rf ~/.acme.sh/*.niusenyun.com
|
|
|
+```
|
|
|
+
|
|
|
+## 3. 申请证书
|
|
|
+
|
|
|
+### 3.1 设置腾讯云DNS API
|
|
|
+
|
|
|
+```bash
|
|
|
+# 设置腾讯云API密钥(需要先在腾讯云控制台获取SecretId和SecretKey)
|
|
|
+export DP_Id="82be64b0a33311efbcaf475f4b5bfbc8"
|
|
|
+export DP_Key="d2087abec1f643329e6b7e0635043705"
|
|
|
+# 设置腾讯云DNS API的标识符
|
|
|
+userId:67371376616d0500c5162a87
|
|
|
+secretId:82be64b0a33311efbcaf475f4b5bfbc8
|
|
|
+secretKey:d2087abec1f643329e6b7e0635043705
|
|
|
+```
|
|
|
+
|
|
|
+### 3.2 查看DNS解析记录
|
|
|
+
|
|
|
+```bash
|
|
|
+# 使用腾讯云API获取解析记录
|
|
|
+curl -X POST https://dnspod.tencentcloudapi.com \
|
|
|
+ -H "Authorization: SECRET_ID" \
|
|
|
+ -H "Content-Type: application/json" \
|
|
|
+ -d '{
|
|
|
+ "Domain": "niusenyun.com",
|
|
|
+ "Subdomain": "_acme-challenge"
|
|
|
+ }'
|
|
|
+
|
|
|
+# 或者使用dig命令查询
|
|
|
+dig TXT _acme-challenge.niusenyun.com @8.8.8.8
|
|
|
+
|
|
|
+# 等待解析生效检查
|
|
|
+nslookup -type=TXT _acme-challenge.niusenyun.com
|
|
|
+```
|
|
|
+
|
|
|
+### 3.3 验证DNS记录
|
|
|
+
|
|
|
+在申请证书之前,可以先验证DNS记录是否正确设置:
|
|
|
+
|
|
|
+```bash
|
|
|
+# 手动添加DNS TXT记录
|
|
|
+# 主域名验证
|
|
|
+记录类型: TXT
|
|
|
+主机记录: _acme-challenge
|
|
|
+记录值: uF1OMd8vv7Yfvn5lxmR328NyXT1yzEDD0h8C8dwmOkw
|
|
|
+
|
|
|
+# 泛域名验证
|
|
|
+记录类型: TXT
|
|
|
+主机记录: _acme-challenge
|
|
|
+记录值: uF1OMd8vv7Yfvn5lxmR328NyXT1yzEDD0h8C8dwmOkw
|
|
|
+
|
|
|
+# 验证DNS记录是否生效
|
|
|
+dig _acme-challenge.niusenyun.com TXT
|
|
|
+
|
|
|
+# 等待DNS记录生效(通常需要等待1-5分钟)
|
|
|
+```
|
|
|
+
|
|
|
+### 3.4 网络配置(Ubuntu 24.04)
|
|
|
+
|
|
|
+```bash
|
|
|
+# 查看网卡状态
|
|
|
+ip addr
|
|
|
+
|
|
|
+# 重启网卡方法1(使用netplan)
|
|
|
+sudo netplan apply
|
|
|
+
|
|
|
+# 重启网卡方法2(使用systemd)
|
|
|
+sudo systemctl restart systemd-networkd
|
|
|
+
|
|
|
+# 重启网卡方法3(针对特定网卡)
|
|
|
+sudo ip link set dev [网卡名] down
|
|
|
+sudo ip link set dev [网卡名] up
|
|
|
+
|
|
|
+# 验证网络连接
|
|
|
+ping -c 4 niusenyun.com
|
|
|
+```
|
|
|
+
|
|
|
+### 3.5 申请证书
|
|
|
+
|
|
|
+```bash
|
|
|
+# 使用DNS方式验证域名所有权(腾讯云DNS)
|
|
|
+acme.sh --issue --dns dns_dp -d niusenyun.com -d '*.niusenyun.com' --force
|
|
|
+
|
|
|
+# 说明:dns_dp 是腾讯云DNS API的标识符
|
|
|
+# --force 参数用于强制重新申请证书
|
|
|
+```
|
|
|
+
|
|
|
+## 4. 安装证书到frp指定目录
|
|
|
+
|
|
|
+```bash
|
|
|
+# 创建证书存放目录
|
|
|
+mkdir -p /root/frp
|
|
|
+
|
|
|
+# 安装证书到指定目录(PEM格式)
|
|
|
+acme.sh --install-cert -d niusenyun.com \
|
|
|
+--key-file /root/frp/key.pem \
|
|
|
+--fullchain-file /root/frp/cert.pem \
|
|
|
+--reloadcmd "systemctl restart frpc"
|
|
|
+```
|
|
|
+
|
|
|
+## 5. 验证证书
|
|
|
+
|
|
|
+```bash
|
|
|
+# 查看证书内容
|
|
|
+openssl x509 -in /root/frp/cert.pem -text -noout
|
|
|
+
|
|
|
+# 验证私钥
|
|
|
+openssl rsa -in /root/frp/key.pem -check
|
|
|
+```
|
|
|
+
|
|
|
+## 6. 自动更新
|
|
|
+
|
|
|
+acme.sh会自动创建一个cron任务,每天检查并在需要时自动更新证书,无需手动操作。
|
|
|
+
|
|
|
+可以通过以下命令查看cron任务:
|
|
|
+```bash
|
|
|
+crontab -l
|
|
|
+```
|
|
|
+
|
|
|
+## 注意事项
|
|
|
+
|
|
|
+1. 已配置域名为:niusenyun.com(包含泛域名 *.niusenyun.com)
|
|
|
+2. 替换`your-secret-id`和`your-secret-key`为腾讯云API密钥(在腾讯云控制台 -> 访问密钥 -> API密钥管理中获取)
|
|
|
+3. 确保域名已正确解析到服务器IP
|
|
|
+4. DNS记录生效可能需要一些时间,如果证书申请失败,请等待几分钟后重试
|
|
|
+
|
|
|
+## 故障排查
|
|
|
+
|
|
|
+如果遇到问题,可以查看以下日志:
|
|
|
+
|
|
|
+```bash
|
|
|
+# 查看acme.sh日志
|
|
|
+acme.sh --log
|
|
|
+
|
|
|
+# 检查证书权限
|
|
|
+ls -l /root/frp/cert.pem /root/frp/key.pem
|
|
|
+
|
|
|
+# 检查DNS记录
|
|
|
+dig _acme-challenge.niusenyun.com TXT
|