1panel中使用cloudflare DNS账户申请SSL证书&自动续签

前言 我使用的是腾讯云的3个月免费域名,每次到3个月我都要手动申请SSL 证书更换,很多次都忘记确保网站安全至关重要。SSL证书为网站提供了一个安全层,保护访问者免受数据泄露的风险。1panel是一款优秀的Linux控制面板软件,它内置了Let’s Encrypt SSL证书的申请和续期功能,使用C

前言

我使用的是腾讯云的3个月免费域名,每次到3个月我都要手动申请SSL 证书更换,很多次都忘记确保网站安全至关重要。SSL证书为网站提供了一个安全层,保护访问者免受数据泄露的风险。1panel是一款优秀的Linux控制面板软件,它内置了Let’s Encrypt SSL证书的申请和续期功能,使用Cloudflare的DNS服务可以方便地自动获取和续期证书。本文将记录如何在Cloudflare账户中创建一个新的 API Token来申请SSL证书,并解决使用global api key导致的区域错误。

先决条件

  • 在开始之前,请确保你已经有一个Cloudflare账户,并且你的网站已经托管到Cloudflare中。

  • 此外,需要在1Panel中创建一个ACME账户,这是申请SSL证书的必要步骤。

创建ACME账户

打开1panel控制面板 - 找到- 证书 - 创建ACME账户,选择算法RSA2048,“邮箱”格式对了就行,账户类型保持默认Let’s Encrypt

创建Cloudflare API Token

当你创建了ACME账户后,现在需要在Cloudflare中创建一个API Token。这个Token将允许1Panel访问你的Cloudflare DNS设置,以验证你的域名所有权。

  • 登录到你的Cloudflare账户。

  • 在右上角转到“我的个人资料” > “API令牌” > “创建令牌”。

  • 找到第一行“API 令牌模板”中的“编辑区域 DNS”模板,点击使用模板。

  • 在编辑模板中找到“区域资源”,选择你的域。

  • 点击“继续以显示摘要“,继续”创建令牌“

  • 保存生成的Token,稍后在1Panel中会用到。

在1Panel中添加DNS账户

接下来,需要在1Panel中添加你的Cloudflare DNS账户。

  • 登录到1Panel。

  • 导航到“证书”,“DNS账户”部分。

  • 点击“创建账户”,类型选择“Cloudflare”。

  • 输入你的Cloudflare邮箱和刚才创建的API Token。

  • 确认保存,像下面这样:

申请SSL证书

可以开始申请SSL证书了。这里要选择 RSA2048 的密钥算法,和刚刚创建ACME账户的时候算法是一样的.

1Panel将自动处理DNS验证,并在验证完成后为你的网站安装SSL证书。如果一切顺利,你将看到提示:证书成功!

下载证书

我使用的是Nginx 把下载的证书导入到nginx里面运行。

Nginx 配置文件

# HTTP → HTTPS 强制跳转
server {
    listen 80;
    server_name 你的证书域名;
    return 301 https://$host$request_uri;
}

# HTTPS 代理服务
server {
    listen 443 ssl http2;
    server_name 你的证书域名;

    # SSL 证书配置(使用 PEM 格式)
    ssl_certificate /etc/nginx/certs/fullchain.pem;      # 证书链文件
    ssl_certificate_key /etc/nginx/certs/privkey.pem;    # 私钥文件
    
    # SSL 优化配置
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    
    # 现代加密协议
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers on;
    
    # HSTS 安全增强
    add_header Strict-Transport-Security "max-age=63072000" always;
    
    # 代理配置
    location / {
        proxy_pass http://你服务器的公网IP:端口;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        client_max_body_size 50m;
    }
}

LICENSED UNDER CC BY-NC-SA 4.0
评论
访问统计
总访问量: 👀| 访客数: 🚶‍♂️