服务器与部署 / 技术笔记

HTTPS 与域名解析

从浏览器输入域名开始,理解它如何找到服务器,并建立一条可信的加密连接。

内容章节
6 节
阅读重点
解析与加密
示例语言
DNS / Shell

浏览器输入 example.com 后,网络需要先把这个名字解析成服务器地址,再确认连接的服务器确实拥有该域名。

文本示意

text

域名↓ DNSIP 地址↓ TLS加密连接

DNS 负责定位服务器,HTTPS 负责验证服务器身份并保护传输内容。

1. 域名是怎样找到服务器的

浏览器会依次检查本地缓存、操作系统缓存和 DNS 解析器。如果没有现成答案,解析器继续询问负责该域名的权威服务器。

终端命令

bash

nslookup example.comdig example.com A

解析结果会根据 TTL 缓存一段时间。因此修改记录以后,不同用户可能不会同时看到新结果。

2. DNS 记录分别解决什么问题

常见记录承担不同职责:

文本示意

text

A       域名指向 IPv4 地址AAAA    域名指向 IPv6 地址CNAME   一个名字指向另一个名字MX      指定邮件服务器TXT     保存验证和策略文本

根域名和子域名的配置能力可能受到 DNS 服务商限制。配置前应先确认最终希望解析到 IP 还是另一个域名。

3. HTTPS 比 HTTP 多了什么

HTTPS 会先进行 TLS 握手。双方协商加密算法,服务器发送证书,浏览器验证后建立会话密钥。

文本示意

text

客户端发起握手服务器发送证书客户端验证域名和签发链双方建立加密密钥开始传输 HTTP 内容

后续数据使用高效的对称加密,证书主要参与身份验证和握手。

4. 证书证明了什么

证书把域名和公钥绑定在一起,并由受信任的证书机构签发。浏览器会检查域名、有效期和签发链。

终端命令

bash

openssl s_client -connect example.com:443 -servername example.com

证书可以确认当前连接对应域名的控制者。网站业务的可信度还需要结合内容和运营主体判断。证书负责连接身份和传输安全。

5. 自动续期为什么重要

证书有明确有效期。过期后浏览器会阻止或强烈警告访问,因此续期必须能够自动执行并被监控。

终端命令

bash

sudo certbot renew --dry-runsystemctl list-timers | rg certbot

只配置自动任务还不够,还需要确认续期后 Web 服务能够重新加载新证书。

6. 从输入域名到安全响应的完整过程

完整访问链路可以这样理解:

文本示意

text

用户输入域名DNS 返回服务器 IP浏览器连接 443 端口TLS 验证证书并建立加密Nginx 接收 HTTP 请求应用生成响应加密内容返回浏览器

遇到访问问题时,先区分 DNS、网络端口、证书还是应用响应。浏览器显示的错误位置,通常就是排查链路的起点。