拥有一台魔法服务器

安装 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