1Panel + 腾讯云:免费申请并部署 SSL 证书完整指南


前言

对于个人开发者或小型项目来说,网站的 HTTPS 加密是必不可少的。然而,商业 SSL 证书价格不菲,手动申请和续期也比较繁琐。本文将介绍如何利用开源服务器管理面板 1Panel,配合腾讯云 DNSPod 的 DNS 验证功能,实现免费 SSL 证书的自动申请与部署。

整个过程的核心思路是:通过 1Panel 内置的 ACME 客户端,以 DNS-01 验证方式向 Let’s Encrypt(或 ZeroSSL)申请证书,而 DNS 验证的记录则自动通过腾讯云 API 完成——全程无需手动操作 DNS 解析。

前置准备

在开始之前,你需要准备以下内容:

  • 一台云服务器:国内可选购腾讯云轻量应用服务器或 CVM,操作系统推荐 Ubuntu 22.04 / Debian 12
  • 一个域名:在腾讯云或其他域名注册商处购买(如果使用腾讯云,DNS 解析会自动关联到 DNSPod)
  • 基础的 Linux 操作能力:能通过 SSH 连接服务器并执行命令

主要步骤

第一步:购买服务器

腾讯云 购买一台适合你需求的服务器:

  • 如果只是托管个人博客或小型项目,轻量应用服务器(2核2G)即可满足需求,价格也非常实惠
  • 购买时注意选择离你目标用户最近的机房地域,以获得更好的访问速度
  • 记得在防火墙中放行常用端口:80(HTTP)、443(HTTPS)、22(SSH),以及 1Panel 默认使用的端口

第二步:购买域名并配置解析

在腾讯云完成域名购买后,需要进行 DNS 解析配置:

  1. 进入 域名注册 控制台,找到你购买的域名
  2. 确保 DNS 服务器指向腾讯云的 DNSPod(购买腾讯云域名通常会自动配置)
  3. 进入 DNS 解析 DNSPod 控制台,为你的域名添加一条 A 记录,将域名指向你服务器的公网 IP
  4. 等待解析生效(通常几分钟到几小时不等)

第三步:安装 1Panel

通过 SSH 连接到你的服务器,执行以下一键安装命令:

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

安装过程中会提示你设置:

  • 1Panel 访问端口:建议改为一个非标准端口(如 18888),提升安全性
  • 安全入口(SecurityEntrance):自定义一个访问路径前缀
  • 用户名和密码:用于登录 1Panel 面板

安装完成后,通过浏览器访问 http://<你的服务器IP>:<端口>/<安全入口> 即可进入 1Panel 管理面板。

安装完成后,别忘了在腾讯云防火墙中放行你设置的 1Panel 端口。

第四步:在腾讯云创建 API 密钥并授权

这是最关键的一步。1Panel 需要通过腾讯云 API 自动操作 DNS 记录来完成证书验证,因此需要创建一个专用的子账号并授予权限。

  1. 登录 腾讯云访问管理控制台,点击左侧菜单 用户用户列表
  2. 点击 新建用户,选择 自定义创建,选择 可访问资源并接收消息 类型
  3. 用户类型选择子用户,设置用户名(如 1panel-ssl
  4. 访问方式勾选 编程访问,这样会生成一对 SecretIdSecretKey
  5. 权限设置:选择 按策略关联权限,搜索并勾选以下权限: img.png
  6. 确认创建后,务必保存好生成的 SecretId 和 SecretKey(关闭弹窗后将无法再次查看)

安全建议:强烈建议仅授予 DNSPod 相关权限,不要授予全站读写权限。这样可以最大程度降低密钥泄露的风险。创建完成后,可能需要等待约 10 分钟让权限生效。

配置完成后,在 1Panel 中申请 SSL 证书时,选择 DNS 验证方式并填入 DNSPod 的 API 密钥,即可看到授权状态:

第五步:在 1Panel 中申请 SSL 证书

  1. 登录 1Panel 面板,进入 网站证书 页面
  2. 点击 申请证书,选择证书提供商(推荐 Let’s Encrypt)
  3. 验证方式选择 DNS 验证
  4. DNS 服务商选择 DNSPod
  5. 填入第四步中创建的 SecretIdSecretKey
  6. 输入你的域名(如 example.com),支持泛域名(如 *.example.com
  7. 点击提交,等待申请完成

申请成功后的截图如下:

img_1.png

第六步:部署证书

证书申请成功后,在 1Panel 中配置网站:

  1. 进入 网站 页面,创建或编辑你的网站
  2. HTTPS 设置中,选择刚刚申请的证书
  3. 开启 强制 HTTPS,自动将 HTTP 请求跳转到 HTTPS

注意事项

  • 证书有效期:Let’s Encrypt 证书有效期为 90 天,1Panel 支持自动续期,定期检查续期状态
  • API 密钥安全:切勿将 API 密钥提交到代码仓库或公开分享,建议使用子账号最小权限原则
  • DNS 传播延迟:如果首次申请失败,可能是 DNS 记录尚未全球生效,稍等片刻后重试即可

参考链接

  1. 1Panel 官方论坛 - 申请免费 SSL 证书教程
  2. DNSPod 官方文档 - ACME 自动化 DNS 验证