2024保姆级教程,免费申请泛域名证书是真的吗?手把手教你实现全站HTTPS

2026-09-05 20:07:25 196阅读
本文旨在解答“免费申请泛域名证书是否真实”的疑问,并提供2024年最新的保姆级实操教程,内容证实,借助Let's Encrypt、ZeroSSL等平台及acme.sh等自动化工具,用户完全可以零成本获取泛域名SSL证书,教程详细拆解了环境配置、证书申请、DNS解析验证、自动续签及服务器部署等全流程,通过本指南,新手也能轻松实现全站HTTPS加密,有效提升网站安全性与SEO表现,彻底告别高昂的商业证书费用。

在如今的互联网环境中,HTTPS 已经是网站的标配,无论是为了数据传输安全,还是为了搜索引擎优化(SEO),给网站配置 SSL/TLS 证书都是必不可少的一环,如果你有多个子域名(如 blog.example.comapi.example.comshop.example.com),为每个子域名单独申请证书不仅繁琐,还会增加管理成本。

这时候,“泛域名证书”(通配符证书)就成为了最佳选择,它不仅能保护主域名,还能无限保护其下的所有子域名,市面上商业泛域名证书通常价格不菲,但幸运的是,我们可以通过 Let's Encrypt 等机构免费申请泛域名证书

2024保姆级教程,免费申请泛域名证书是真的吗?手把手教你实现全站HTTPS

本文将手把手教你如何使用免费开源工具 acme.sh,通过简单的几步完成免费泛域名证书的申请与部署。

为什么选择 acme.sh?

目前申请 Let's Encrypt 免费证书的工具有很多(如 Certbot 等),但 acme.sh 凭借以下优势脱颖而出:

  1. 纯 Shell 编写,不依赖 Python 或其他环境,极其轻量。
  2. 支持自动 DNS 验证,这对申请泛域名证书至关重要。
  3. 支持众多 DNS 服务商的 API,能实现全自动申请和自动续期。
  4. 自动安装和部署,支持 Nginx、Apache 等多种服务器。

准备工作

在开始之前,你需要准备:

  1. 一个属于自己的域名(如 example.com)。
  2. 域名的 DNS 解析管理权(如在阿里云、腾讯云、Cloudflare 等)。
  3. 一台 Linux 服务器(VPS)。

详细操作步骤

第一步:安装 acme.sh

登录你的 Linux 服务器,执行以下命令自动安装 acme.sh

curl https://get.acme.sh | sh -s email=your-email@example.com

请将 your-email@example.com 替换为你的真实邮箱,用于接收证书过期提醒。

安装完成后,重新加载环境变量使其生效:

source ~/.bashrc

第二步:配置 DNS 服务商 API 密钥

申请泛域名证书必须通过 DNS 验证(即证明你拥有该域名的控制权),由于泛域名证书包含 *.example.com,手动添加 TXT 记录虽然可行,但证书每 60 天需续期一次,手动操作不现实,我们需要配置 DNS API,实现全自动验证。

Cloudflare 为例,在 Cloudflare 控制台获取 API Token,然后在服务器中执行:

export CF_Token="你的Cloudflare_API_Token"
export CF_Zone_ID="你的Zone_ID"

如果你使用的是 阿里云 DNS,可以在阿里云控制台创建 AccessKey,然后执行:

export Ali_Key="你的AccessKey_ID"
export Ali_Secret="你的AccessKey_Secret"

注:acme.sh 支持上百家 DNS 服务商,具体环境变量设置可参考 acme.sh 官方文档。

第三步:免费申请泛域名证书

配置好 API 密钥后,就可以开始申请证书了,执行以下命令(以阿里云 DNS 为例,域名为 example.com):

acme.sh --issue --dns dns_ali -d example.com -d *.example.com

命令解析:

  • --dns dns_ali:指定使用阿里云 DNS API(Cloudflare 则为 dns_cf)。
  • -d example.com:申请包含主域名。
  • -d *.example.com:申请包含泛域名。

执行该命令后,acme.sh 会自动调用 API 添加 TXT 记录进行验证,验证通过后再自动删除记录,整个过程完全自动化,只需等待几十秒,看到 Cert success! 字样即代表申请成功。

第四步:安装证书到服务器

注意: 不要直接使用 ~/.acme.sh/ 目录下的证书文件,官方强烈建议将证书复制到正式的网站目录中。

创建一个存放证书的目录并安装:

mkdir -p /etc/nginx/ssl/example.com
acme.sh --install-cert -d example.com -d *.example.com \
--key-file /etc/nginx/ssl/example.com/key.pem \
--fullchain-file /etc/nginx/ssl/example.com/cert.pem \
--reloadcmd "systemctl reload nginx"

这里的 --reloadcmd 参数非常重要,它会在每次证书续期更新后,自动重载 Nginx 使新证书生效。

第五步:配置 Nginx 并启用 HTTPS

编辑你的 Nginx 配置文件,将刚刚生成的证书路径填入:

server {
    listen 443 ssl;
    server_name *.example.com example.com;
    ssl_certificate /etc/nginx/ssl/example.com/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/example.com/key.pem;
    # 推荐的 SSL 安全配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    location / {
        proxy_pass http://127.0.0.1:8080; # 根据你的实际后端端口修改
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

保存后,测试 Nginx 配置并重启:

nginx -t
systemctl reload nginx

关于自动续期

Let's Encrypt 的免费泛域名证书有效期为 90 天,但因为我们安装了 acme.sh,在安装时它已经自动在你的系统 Cron 定时任务中添加了一条指令,每天会自动检查证书是否快过期,如果距离过期不足 30 天,就会自动重新申请并调用 --reloadcmd 重载服务。你完全不需要再为续期操心。

通过 acme.sh 结合 Let's Encrypt 免费申请泛域名证书,不仅零成本解决了全站 HTTPS 加密的问题,还通过 DNS API 实现了自动化签发与续期,这大大降低了运维成本,提升了网站的安全性,如果你手里还有未配置 SSL 的子域名,赶紧按照本教程操作起来吧!

文章版权声明:除非注明,否则均为亚朵原创文章,转载或复制请以超链接形式并注明出处。