确保你的域名 jessi53.com
和 www.jessi53.com
的 DNS 记录已经正确配置在 Cloudflare 中,并且状态为 Active
。
在你的服务器上安装 Certbot 和 Cloudflare 插件。以下是基于 Debian/Ubuntu 和 CentOS 的安装步骤:
sudo apt update
sudo apt install -y certbot python3-certbot-dns-cloudflare
sudo yum install -y epel-release
sudo yum install -y certbot python3-certbot-dns-cloudflare
打开 Cloudflare 控制面板 并登录你的账户。
API Tokens
。Create Token
按钮。Choose a template
下拉菜单中,选择 Edit zone DNS
模板。Certbot DNS Management
。Edit zone DNS
权限已启用。所有区域
或者指定特定的区域。8.130.xx.xx
)。Create Token
按钮生成 API 令牌,并复制保存生成的 API 令牌。在服务器上创建一个文件来存储你的 Cloudflare API 令牌:
mkdir -p ~/.secrets/certbot
nano ~/.secrets/certbot/cloudflare.ini
在文件中添加以下内容(替换 YOUR_CLOUDFLARE_API_TOKEN
):
dns_cloudflare_api_token = YOUR_CLOUDFLARE_API_TOKEN
设置文件权限以确保安全:
chmod 600 ~/.secrets/certbot/cloudflare.ini
使用 Certbot 和 Cloudflare 插件申请 SSL 证书:
sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini -d jessi53.com -d www.jessi53.com
# 可添加多个域名
sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini -d jessi53.com -d www.jessi53.com -d xxxx1031.com -d www.xxxx1031.com
使用 Certbot 和 Cloudflare 插件申请泛域名 SSL 证书:
sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini -d jessi53.com -d www.jessi53.com -d *.jessi53.com
如果 DNS 验证失败,可以尝试增加 --dns-cloudflare-propagation-seconds
的值,以确保 DNS 记录有足够的时间传播:
sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini -d jessi53.com -d www.jessi53.com -d *.jessi53.com --dns-cloudflare-propagation-seconds 60
找到你的 Nginx 配置文件,通常位于 /etc/nginx/sites-available/
或 /etc/nginx/conf.d/
目录下。例如,你的配置文件可能是 /etc/nginx/sites-available/jessi53.com
。
打开配置文件并更新为以下内容:
server {
listen 80;
server_name jessi53.com www.jessi53.com;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name jessi53.com www.jessi53.com;
ssl_certificate /etc/letsencrypt/live/jessi53.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/jessi53.com/privkey.pem;
location / {
# 你的网站内容
}
}
运行以下命令测试 Nginx 配置文件是否有语法错误:
sudo nginx -t
如果配置文件没有问题,重新加载 Nginx 以应用更改:
sudo systemctl reload nginx
运行以下命令编辑 Crontab 文件:
sudo crontab -e
确保 Crontab 文件中包含以下行,以每天凌晨 2 点自动尝试续期证书:
0 2 * * * /usr/bin/certbot renew --quiet
打开浏览器,访问 https://jessi53.com
和 https://www.jessi53.com
,确保网站能够通过 HTTPS 正常访问,并且没有证书错误。
查看 Certbot 的日志文件以确保一切正常:
cat /var/log/letsencrypt/letsencrypt.log