# 安装所需工具
apt update
apt install -y socat curl wget
# 安装acme.sh
curl https://get.acme.sh | sh -s email=xiaoding@xiaodingyun.cn
# 重新加载环境变量
source ~/.bashrc
# 删除已存在的证书文件
rm -f /root/frp/cert.pem /root/frp/key.pem
# 移除acme.sh中的证书记录
acme.sh --remove -d xiaodingyun.cn
acme.sh --remove -d "*.xiaodingyun.cn "
# 清除acme.sh的域名配置
rm -rf ~/.acme.sh/xiaodingyun.cn
rm -rf ~/.acme.sh/*.xiaodingyun.cn
# 设置腾讯云API密钥(需要先在腾讯云控制台获取SecretId和SecretKey)
export DP_Id="9ec5c5a0a57611ef9fa21fb4ee2b819c"
export DP_Key="84d361f9997546c5b16e821121a3337f"
# 设置腾讯云DNS API的标识符
https://console.cloud.tencent.com/taidc/api
userId:673adf0c2ab3a41d61c2f385
secretId:9ec5c5a0a57611ef9fa21fb4ee2b819c
secretKey:84d361f9997546c5b16e821121a3337f
# 或者使用dig命令查询
dig TXT _acme-challenge.xiaodingyun.cn @8.8.8.8
# 等待解析生效检查
nslookup -type=TXT _acme-challenge.xiaodingyun.cn
在申请证书之前,可以先验证DNS记录是否正确设置:
# 验证DNS记录是否生效
dig _acme-challenge.xiaodingyun.cn TXT
# 等待DNS记录生效(通常需要等待1-5分钟)
# 查看网卡状态
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 xiaodingyun.cn
apt-get install idn
# 使用DNS方式验证域名所有权(腾讯云DNS)
# 先清理已有证书
acme.sh --remove -d xiaodingyun.cn
acme.sh --remove -d "*.xiaodingyun.cn"
rm -rf ~/.acme.sh/xiaodingyun.cn*
# 重新申请证书(添加debug参数)
acme.sh --issue --dns dns_dp -d xiaodingyun.cn -d "*.xiaodingyun.cn" --force
# 说明:
# dns_dp 是腾讯云DNS API的标识符
# --force 参数用于强制重新申请证书
# --debug 参数用于显示详细的调试信息
Adding TXT value: KXPGUraeHDzW0v4MuJ4pwmIbzo6RYz1uyI0E4Tou1bA for domain: _acme-challenge.xiaodingyun.cn
# 创建证书存放目录
mkdir -p /root/frp
# 安装证书到指定目录(PEM格式)
acme.sh --install-cert -d xiaodingyun.cn \
--key-file /root/frp/key.pem \
--fullchain-file /root/frp/cert.pem \
--reloadcmd "systemctl restart frpc"
# 查看证书内容
openssl x509 -in /root/frp/cert.pem -text -noout
# 验证私钥
openssl rsa -in /root/frp/key.pem -check
acme.sh会自动创建一个cron任务,每天检查并在需要时自动更新证书,无需手动操作。
可以通过以下命令查看cron任务:
crontab -l
your-secret-id
和your-secret-key
为腾讯云API密钥(在腾讯云控制台 -> 访问密钥 -> API密钥管理中获取)如果遇到问题,可以查看以下日志:
```bash
acme.sh --log
ls -l /root/frp/cert.pem /root/frp/key.pem
dig _acme-challenge.xiaodingyun.cn TXT