跳到正文

域名解析与 HTTPS 证书配置全流程

建站的两块地基:域名指向你的服务器,以及让浏览器不再报「不安全」。这篇走完从解析到证书自动续期的完整链路。证书申请失败的原因高度集中,本文也把最常见的几种单独拆出来。

30 分钟 难度:中等 7 个步骤更新于 2026-09-13

开始之前

  • 已有一个域名,且能修改它的 DNS 记录
  • 机器已开机,能 SSH 登录,知道公网 IP
  • 机器上还没有占用 80 端口的服务(或知道怎么停掉)

操作步骤

  1. 第 1 步: 先确认你要暴露的是哪个域名

    决定用根域名(example.com)还是子域名(www.example.comblog.example.com)。

    建议两个都加,然后在 Web 服务器里把其中一个 301 到另一个。只配一个的话,另一个打不开会让访客以为站点挂了。

    证书申请时要把所有要用的域名一次性写上,后期补加虽然可行,但不如一次做对省事。

  2. 第 2 步: 添加 DNS 解析记录

    在你的域名服务商(或 Cloudflare 这类 DNS 托管商)后台添加一条 A 记录

    • 主机记录:@(根域名)或 www(子域名)
    • 记录类型:A
    • 记录值:你的服务器公网 IP
    • TTL:默认即可(通常 300 秒或自动)

    用 Cloudflare 的话有一个关键点:申请证书期间,这条记录的小云朵图标要先设成灰色(DNS only)。橙色(Proxied)会让流量先经过 Cloudflare,导致证书校验拿不到你的源站,申请会失败。证书装好之后再决定是否打开代理。

  3. 第 3 步: 验证解析是否生效

    解析不是即时的,取决于 TTL 和缓存。等待一两分钟后验证:

    # Linux / macOS
    dig +short 你的域名
    
    # Windows
    nslookup 你的域名

    返回的 IP 和你的服务器一致,才能进行下一步。

    如果返回的是 CDN 或其他 IP,说明记录还是代理状态,回去改成 DNS only。如果返回为空,说明记录还没生效,再等一会儿。

    不要跳过这一步。证书申请失败最常见的原因就是域名根本没解析到这台机器。

  4. 第 4 步: 装 Web 服务器并确认能访问

    以 Nginx 为例(Debian / Ubuntu):

    apt update
    apt install nginx -y
    systemctl enable --now nginx

    然后在浏览器里用 http://你的域名 访问,看到 Nginx 默认页说明解析和 Web 服务器都通了。

    先用 HTTP 走通再上证书,可以避免「HTTP 和 HTTPS 都不通」时无从下手。

    如果防火墙开着,记得放行:

    ufw allow 80/tcp
    ufw allow 443/tcp
  5. 第 5 步: 申请证书

    用 certbot,它会自动改 Nginx 配置并加上跳转:

    apt install certbot python3-certbot-nginx -y
    certbot --nginx -d example.com -d www.example.com

    把域名换成你自己的。执行过程中会问几件事:

    • 输入邮箱(用于到期提醒)
    • 同意服务条款
    • 是否把所有 HTTP 请求跳转到 HTTPS —— 一般选是

    完成后 certbot 会直接改好 Nginx 配置并 reload,不需要手动编辑。

  6. 第 6 步: 确认自动续期已就位

    Let's Encrypt 的证书有效期是 90 天,靠自动续期维持。certbot 安装时会注册一个 systemd timer,检查它是否在:

    systemctl list-timers | grep certbot

    再用空跑模式验证续期流程本身没问题:

    certbot renew --dry-run

    --dry-run 不会真的换证书,只走一遍流程。这一步值得做 —— 自动续期失败通常要到证书过期那天才会发现,那时站点已经打不开了。

  7. 第 7 步: 最后验证一遍

    浏览器访问 https://你的域名,确认:

    • 地址栏有锁形图标,没有安全警告
    • http:// 访问会自动跳到 https://
    • www 和不用 www 两个都能打开

    如果用了 Cloudflare 代理,现在可以把小云朵改回橙色。注意改回之后,访客看到的是 Cloudflare 的证书,你的源站证书依然需要保持有效,两者是独立的两层。

常见问题与排查

常见故障的现象、原因与解决方法
现象 原因 处理方式
certbot 报域名验证失败 域名没有解析到这台机器,或者解析还被 CDN 代理着 用 dig 确认解析结果就是服务器 IP;Cloudflare 用户先把记录改成 DNS only(灰色云朵)再申请
certbot 报 80 端口不可达 防火墙没放行 80 端口,或有其他服务占用了它 检查 ufw 规则;用 ss -tlnp | grep :80 确认端口占用情况。HTTP-01 验证必须能从公网访问 80 端口
证书装好了,但浏览器仍提示不安全 页面里混用了 http:// 的资源(图片、脚本、样式) 打开浏览器控制台看被拦截的请求,把页面里的 http:// 资源地址改成 https:// 或相对路径
到期前站点突然打不开,提示证书过期 自动续期没有生效 检查 systemctl list-timers 里有没有 certbot 任务;手动执行 certbot renew 看报错。续期同样需要 80 端口可用

需要一台机器来练手?

入门套餐折算月成本最低,30 天内可全额退款,适合用来把流程走通一遍。

本站含联盟链接。你通过这些链接购买,价格不变,我们会获得佣金。 详情