ssl.md 3.6 KB

使用acme.sh申请和安装SSL证书教程

1. 安装acme.sh

# 安装所需工具
apt update
apt install -y socat curl wget

# 安装acme.sh
curl https://get.acme.sh | sh -s email=xiaoding@kbbei.com

# 重新加载环境变量
source ~/.bashrc

2. 清除已存在的证书

# 删除已存在的证书文件
rm -f /root/frp/cert.pem /root/frp/key.pem

# 移除acme.sh中的证书记录
acme.sh --remove -d kbbei.com
acme.sh --remove -d "*.kbbei.com  "

# 清除acme.sh的域名配置
rm -rf ~/.acme.sh/kbbei.com
rm -rf ~/.acme.sh/*.kbbei.com

3. 申请证书

3.1 设置腾讯云DNS API

# 设置腾讯云API密钥(需要先在腾讯云控制台获取SecretId和SecretKey)
export DP_Id="bfa2b440b09d11ef8f4fdb396f4b4302"
export DP_Key="81847f1a22e040e7b405708f51bf41d8"

# 设置腾讯云DNS API的标识符
https://console.cloud.tencent.com/taidc/api
secretId:bfa2b440b09d11ef8f4fdb396f4b4302
secretKey:81847f1a22e040e7b405708f51bf41d8
userId:674d952860db7708b27658ad

3.2 查看DNS解析记录

# 或者使用dig命令查询
dig TXT _acme-challenge.kbbei.com   @8.8.8.8

# 等待解析生效检查
nslookup -type=TXT _acme-challenge.kbbei.com

3.3 验证DNS记录

在申请证书之前,可以先验证DNS记录是否正确设置:

# 验证DNS记录是否生效
dig _acme-challenge.kbbei.com   TXT

# 等待DNS记录生效(通常需要等待1-5分钟)

3.4 网络配置(Ubuntu 24.04)

# 查看网卡状态
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 kbbei.com

3.5 申请证书

apt-get install idn
# 使用DNS方式验证域名所有权(腾讯云DNS)
# 先清理已有证书
acme.sh --remove -d kbbei.com
acme.sh --remove -d "*.kbbei.com"
rm -rf ~/.acme.sh/kbbei.com*

# 重新申请证书(添加debug参数)
acme.sh --issue --dns dns_dp -d kbbei.com  -d "*.kbbei.com" --force

# 说明:
# dns_dp 是腾讯云DNS API的标识符
# --force 参数用于强制重新申请证书
# --debug 参数用于显示详细的调试信息

3.6 根据提示操作

Adding TXT value: KXPGUraeHDzW0v4MuJ4pwmIbzo6RYz1uyI0E4Tou1bA for domain: _acme-challenge.kbbei.com

4. 安装证书到frp指定目录

# 创建证书存放目录
mkdir -p /root/frp

# 安装证书到指定目录(PEM格式)
acme.sh --install-cert -d kbbei.com   \
--key-file /root/frp/key.pem \
--fullchain-file /root/frp/cert.pem \
--reloadcmd "systemctl restart frpc"

5. 验证证书

# 查看证书内容
openssl x509 -in /root/frp/cert.pem -text -noout

# 验证私钥
openssl rsa -in /root/frp/key.pem -check

6. 自动更新

acme.sh会自动创建一个cron任务,每天检查并在需要时自动更新证书,无需手动操作。

可以通过以下命令查看cron任务:

crontab -l

注意事项

  1. 已配置域名为:kbbei.com (包含泛域名 *.kbbei.com )
  2. 替换your-secret-idyour-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.kbbei.com TXT