拥有一台魔法服务器
安装 Certbot
sudo apt update
sudo apt install certbot
普通申请
sudo certbot certonly --standalone -d example.com -d www.example.com
nginx模式申请
sudo certbot --nginx -d example.com -d www.example.com
通过 DNS 记录进行域名验证
sudo certbot certonly --manual --preferred-challenges dns -d www.demo.com
多个域名
sudo certbot certonly --manual --preferred-challenges dns -d example.com -d www.example.com -d api.example.com -d another-domain.com
运行命令后,certbot 会提示你添加一个特定的 TXT 记录到你的 DNS 设置中。示例如下:
Please deploy a DNS TXT record under the name
_acme-challenge.www.demo.com with the following value:
uDUF3VwAA5VCuHt5k4DLfzL6yZd7GHNlPpJFtTgY2Qs
你需要将这个 TXT 记录添加到你的 DNS 服务器中。例如,假设你使用的是 Cloudflare DNS,步骤如下:
登录到你的 DNS 提供商(如 Cloudflare、阿里云、腾讯云等)的控制面板。
找到你要管理的域名 demo.com。
在 DNS 设置中添加一条新的 TXT 记录,名称为 _acme-challenge.www,值为 certbot 提供的那串文本,例如 uDUF3VwAA5VCuHt5k4DLfzL6yZd7GHNlPpJFtTgY2Qs。
保存更改。
申请成功后
证书会被保存到 /etc/letsencrypt/live/xui.aoaos.com/ 目录下,包含以下几个文件:
privkey.pem:私钥文件。
fullchain.pem:完整的证书链文件。
cert.pem:你的域名证书文件。
chain.pem:证书链文件。
配置web服务器
server {
listen 443 ssl;
server_name www.demo.com;
ssl_certificate /etc/letsencrypt/live/www.demo.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.demo.com/privkey.pem;
# 其他配置项...
}
设置自动续期(可选)【这里需要你在你申请的这太服务器上面执行】一般不用
sudo certbot renew --dry-run
ssh端口转发
SSH端口转发: ssh -L 20000:127.0.0.1:20000 root@1.1.1.1 -p 22