# 安装所需工具
apt update
apt install -y socat curl wget
# 安装acme.sh
curl https://get.acme.sh | sh -s email=mall@niusenyun.com
# 重新加载环境变量
source ~/.bashrc
# 删除已存在的证书文件
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
# 设置腾讯云API密钥(需要先在腾讯云控制台获取SecretId和SecretKey)
export DP_Id="82be64b0a33311efbcaf475f4b5bfbc8"
export DP_Key="d2087abec1f643329e6b7e0635043705"
# 设置腾讯云DNS API的标识符
userId:67371376616d0500c5162a87
secretId:82be64b0a33311efbcaf475f4b5bfbc8
secretKey:d2087abec1f643329e6b7e0635043705
# 使用腾讯云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
在申请证书之前,可以先验证DNS记录是否正确设置:
# 手动添加DNS TXT记录
# 主域名验证
记录类型: TXT
主机记录: _acme-challenge
记录值: uF1OMd8vv7Yfvn5lxmR328NyXT1yzEDD0h8C8dwmOkw
# 泛域名验证
记录类型: TXT
主机记录: _acme-challenge
记录值: uF1OMd8vv7Yfvn5lxmR328NyXT1yzEDD0h8C8dwmOkw
# 验证DNS记录是否生效
dig _acme-challenge.niusenyun.com 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 niusenyun.com
# 使用DNS方式验证域名所有权(腾讯云DNS)
acme.sh --issue --dns dns_dp -d niusenyun.com -d '*.niusenyun.com' --force
# 说明:dns_dp 是腾讯云DNS API的标识符
# --force 参数用于强制重新申请证书
# 创建证书存放目录
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"
# 查看证书内容
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.niusenyun.com TXT