[toc]
域名和证书
域名
什么是域名
域名是互联网上用于标识和定位计算机的层次结构化字符标识,它将复杂的IP地址转换为人类易于记忆的名称。
例如,www.example.com 就是一个域名。
为什么需要域名(前因后果)
背景:在互联网早期,用户需要通过IP地址来访问网站。IPv4地址由4组数字组成,如 192.168.1.1,这对人类来说很难记忆和输入。
问题:
- IP地址难以记忆
- IP地址可能会改变(服务器迁移、网络重构等)
- 一个IP地址可能对应多个服务
解决方案:域名系统(DNS)应运而生,将人类友好的名称映射到IP地址。
域名 vs IP地址
| 特性 | 域名 | IP地址 |
|---|---|---|
| 可读性 | 人类友好,易记忆 | 数字组合,难记忆 |
| 稳定性 | 可指向不同IP | 可能会改变 |
| 灵活性 | 支持负载均衡、CDN | 直接路由 |
| 关系 | 通过DNS解析为IP | 网络设备的实际地址 |
重要区别:
- 一个域名可对应多个IP(负载均衡)
- 一个IP可对应多个域名(虚拟主机)
- 域名需要DNS解析,IP直接路由
域名的结构
域名采用层次结构,从右到左依次为:
顶级域名(TLD)
└── 二级域名(SLD)
└── 子域名示例:blog.example.com
.com:顶级域名example:二级域名blog:子域名
域名解析过程
- 本地DNS缓存:首先检查本地缓存
- 递归查询:向DNS服务器发起查询请求
- 根域名服务器:返回顶级域名服务器地址
- 顶级域名服务器:返回权威域名服务器地址
- 权威域名服务器:返回最终的IP地址
- 返回结果:将IP地址返回给客户端
常见的域名后缀
- 通用顶级域名(gTLD):
.com、.net、.org、.info等 - 国家代码顶级域名(ccTLD):
.cn(中国)、.us(美国)、.jp(日本)等 - 新通用顶级域名(New gTLD):
.app、.dev、.xyz等
域名注册和管理
- 注册商:如阿里云、腾讯云、GoDaddy等
- DNS解析服务:可以与注册商相同,也可以使用第三方服务
- 域名续费:通常需要每年续费,过期后可能被回收
SSL/TLS证书
什么是SSL/TLS证书
SSL/TLS证书是数字证书的一种,是遵守SSL协议的,由受信任的数字证书颁发机构(简称CA)在验证服务器身份后颁发,具有服务器身份验证和数据传输加密的功能。
网站安装SSL证书后,就会激活SSL协议。在客户端和服务端之间建立一条SSL安全通道(Secure socket layer(SSL),对互相传送的数据进行加密和隐藏;确保数据在传送中不被改变,保证数据的完整性。
目前,像是很多大型的电商网站、外贸网站、企业网站都有安装SSL证书。而且用户可以通过服务器证书验证他所访问的网站是否是真实可靠。
如何判断该网站是否安装了SSL证书
一般情况下,我们访问的Web网站都是以“http”开头的,如果网站安装SSL证书之后,那么Web网站能够以“https”开头进行访问,而且URL地址前面还有小锁的符号。
为什么需要证书(前因后果)
背景:HTTP协议是明文传输的,数据在传输过程中可能被窃听、篡改或伪造。
问题:
- 数据泄露:密码、信用卡信息等敏感数据可能被截获
- 数据篡改:传输的内容可能被恶意修改
- 身份伪造:攻击者可以伪造网站,欺骗用户
解决方案:HTTPS协议通过SSL/TLS证书实现加密传输和身份验证。
证书的原理
- 非对称加密:使用公钥和私钥对
- 数字签名:证书颁发机构(CA)对证书进行签名
- 证书链:从根证书到中间证书到服务器证书的信任链
- 握手过程:客户端验证服务器证书,协商加密算法
证书链和根证书
证书链结构:
根证书(Root CA)
└── 中间证书(Intermediate CA)
└── 服务器证书(Server Certificate)重要性:
- 客户端需要完整的证书链才能验证证书
- 缺少中间证书会导致证书验证失败
- 根证书通常预装在操作系统或浏览器中
证书的类型
按验证级别分类
SSL证书分为3种:域名型SSL证书(DV SSL),企业组织型SSL证书(OV SSL),增强型SSL证书(EV SSL)
域名验证(DV)证书
- 只验证域名所有权。
- 此类证书仅能起到网站机密信息加密的作用,无法向用户证明网站的真实身份。
- 颁发速度快
- 适用于个人网站、小型组织或企业网站、各类加密应用(如数据库和即时通讯协议等)。
组织验证(OV)证书
- 验证域名所有权和组织单位的真实身份。
- 不仅能起到网站机密信息加密的作用,而且能向用户证明网站的真实身份。
- 适用于企业网站,电子商务网站使用。因为需要的是在线信任和在线安全。
增强验证(EV)证书
- 最严格的验证流程。验证流程更加具体详细,验证步骤更多,证书所绑定的网站就更加的可靠,可信。
- 浏览器地址栏显示组织名称,还有公司地址等等;
- 特别适合金融、保险、p2p、电商、网上支付等等等高安全要求网站。
DV vs OV vs EV证书的区别:
- 安全级别相同(加密强度)
- 验证级别不同(域名→组织→扩展验证)
- 显示效果不同(EV证书在地址栏显示组织名称)
- 价格不同(EV最贵,DV最便宜或免费)
按覆盖范围分类
- 单域名证书:只保护一个域名
- 多域名证书(SAN):保护多个域名
- 通配符证书:保护主域名及其所有子域名
单域名 vs 多域名 vs 通配符证书的区别:
- 覆盖范围不同(单个域名→多个域名→主域名及所有子域名)
- 价格不同(通配符最贵)
- 灵活性不同(多域名最灵活)
免费证书 vs 付费证书
| 特性 | 免费证书(Let's Encrypt) | 付费证书 |
|---|---|---|
| 费用 | 免费 | 需要付费 |
| 验证级别 | 仅DV | 支持OV/EV |
| 有效期 | 90天 | 1年或更长 |
| 自动续期 | 支持 | 部分支持 |
| 技术支持 | 社区支持 | 专业支持 |
| 保险 | 无 | 有 |
| 适用场景 | 个人网站、测试环境 | 企业网站、金融电商 |
证书的申请、部署和管理
申请流程
- 生成CSR(证书签名请求):包含公钥和组织信息
- 提交给CA:选择证书颁发机构
- 验证身份:根据证书类型进行相应验证
- 颁发证书:CA签发证书文件
- 部署证书:在服务器上配置证书
部署位置
- Web服务器(Nginx、Apache等)
- 负载均衡器
- CDN服务
- API网关
续期和管理
- 有效期:通常为1年或90天(Let's Encrypt)
- 自动续期:使用ACME协议实现自动续期(Certbot、acme.sh、Caddy等)
- 证书监控:监控证书过期时间,及时续期
- 密钥轮换:定期更换私钥,提高安全性
域名和证书的关系
重要概念:域名和证书是两个完全独立的概念和服务,它们之间的关系如下:
独立性:
- 域名:用于标识和定位网站,由域名注册商管理
- 证书:用于加密传输和身份验证,由证书颁发机构(CA)管理
- 购买域名时不会自动获得证书,需要单独申请
关联性:
- 证书必须绑定到具体的域名才能使用
- 证书申请时需要证明对域名的所有权
- 一个域名可以有多个证书(不同类型、不同有效期)
使用场景:
- 可以有域名但没有证书(HTTP访问)
- 可以有证书但没有域名(IP访问,较少见)
- 正常网站需要同时拥有域名和证书(HTTPS访问)
类比理解:
- 域名就像"门牌号",告诉别人你的地址
- 证书就像"身份证",证明你的身份
- 两者都需要才能安全访问网站
常见错误和解决方案
| 错误类型 | 原因 | 解决方案 |
|---|---|---|
| 证书过期 | 证书有效期已过 | 及时续期或设置自动续期 |
| 域名不匹配 | 证书域名与访问域名不一致 | 确保证书包含所有需要的域名 |
| 证书链不完整 | 缺少中间证书 | 配置完整的证书链 |
| 混合内容 | HTTPS页面包含HTTP资源 | 将所有资源改为HTTPS |
| DNS解析失败 | DNS配置错误或未生效 | 检查DNS配置,等待传播完成 |
| 证书验证失败 | 验证记录配置错误 | 检查TXT记录或验证文件 |
SSL证书中 如何把xxx_chain.crt和xxx_public.crt 合并为xxx.pem 文件
把xxxxxxx_public.crt 和 xxxxxxx_chain.crt合并成一个.pem 文件。
方法:直接txt打开两个文件,复制内容保存成一个文件,命名为.pem文件格式即可。需要注意的是xxxxxxx_public.crt内容放前面,不要留空行。
域名和证书的完整使用流程
从购买域名到网站上线
第一步:购买域名
- 选择域名注册商:阿里云、腾讯云、GoDaddy、Namecheap等
- 查询域名可用性:输入想要的域名,检查是否已被注册
- 选择域名后缀:
根据需求选择.com、.cn、.net等 - 完成购买:填写注册信息,支付费用
- 域名实名认证(国内注册商):提交身份证或企业资质
第二步:配置DNS解析
为什么需要添加DNS记录:
- 域名本身只是一个名称,需要通过DNS解析指向具体的服务器IP地址
- 添加记录相当于在互联网的"电话簿"中登记你的地址
- 没有DNS记录,域名无法访问到你的服务器
DNS记录类型和作用:
| 记录类型 | 作用 | 示例 |
|---|---|---|
| A记录 | 域名指向IPv4地址 | www → 192.168.1.1 |
| AAAA记录 | 域名指向IPv6地址 | www → 2001:db8::1 |
| CNAME记录 | 域名别名,指向另一个域名 | blog → www.example.com |
| MX记录 | 邮件服务器记录 | @ → mail.example.com |
| TXT记录 | 文本记录,用于验证等 | @ → v=spf1 include:_spf.google.com ~all |
| NS记录 | 指定域名服务器 | @ → ns1.aliyun.com |
配置步骤:
- 登录域名控制台
- 找到DNS解析或域名解析页面
- 添加A记录:主机记录填写
@或www,记录值填写服务器IP地址 - 等待DNS生效(通常10分钟-24小时)
- 使用
ping或nslookup命令验证解析是否成功
第三步:准备服务器
- 购买/租用服务器:云服务器(ECS)、VPS、物理服务器等
- 配置服务器环境:安装Web服务器(Nginx、Apache等)
- 部署网站代码:上传网站文件到服务器
- 测试HTTP访问:通过IP地址访问,确保网站正常运行
第四步:申请SSL证书
证书申请流程:
选择证书类型:
- 个人/测试:免费DV证书(Let's Encrypt)
- 企业网站:付费OV证书
- 金融/电商:付费EV证书
申请证书:
- 方式一:云平台免费证书(推荐新手)
- 登录云平台证书控制台
- 申请免费证书
- 选择域名验证方式
- 方式二:Let's Encrypt
- 使用Certbot工具
- 自动验证和部署
- 方式三:付费证书
- 向CA机构申请
- 提交企业资料
- 等待审核
- 方式一:云平台免费证书(推荐新手)
域名验证(证明域名所有权):
- DNS验证:在域名控制台添加TXT记录
- 文件验证:在网站根目录放置验证文件
- HTTP验证:通过特定URL验证
下载证书:获得证书文件和私钥文件
第五步:部署证书到服务器
- 上传证书文件:将证书和私钥上传到服务器
- 配置Web服务器:nginx
server { listen 443 ssl; server_name www.example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; } - 重启Web服务器:使配置生效
- 测试HTTPS访问:通过https://访问网站
- 配置HTTP跳转HTTPS:将HTTP请求重定向到HTTPS
第六步:验证和优化
- 检查证书状态:使用浏览器查看证书信息
- SSL测试:使用SSL Labs等工具测试配置
- 安全配置:启用HSTS、配置安全头部
- 监控续期:设置证书自动续期
为什么云平台有域名控制台和证书控制台
常见云平台对比
| 平台 | 域名服务 | 证书服务 | 免费证书 | 特点 |
|---|---|---|---|---|
| 阿里云 | 云解析DNS | SSL证书服务 | 单域名 | 功能全面,文档详细 |
| 腾讯云 | DNSPod | SSL证书 | 单域名 | 操作简单,界面友好 |
| 华为云 | 域名服务 | SSL证书管理 | 单域名 | 企业级服务 |
| Cloudflare | DNS管理 | SSL/TLS | 通配符 | 全球CDN,安全性高 |
域名控制台操作的原因:
- DNS权威性:域名控制台提供权威的DNS解析服务
- 域名所有权:只有域名所有者才能修改DNS记录
- 全球生效:修改会在全球DNS服务器上生效
- 安全控制:防止DNS劫持和恶意修改
证书控制台操作的原因:
- 证书管理:集中管理所有证书
- 验证流程:完成域名验证和企业验证
- 部署便捷:一键部署到云服务
- 监控提醒:自动监控证书状态和到期时间
两个控制台的协作:
- 申请证书时:在证书控制台申请一个新证书,然后需要在域名控制台中添加验证记录
- 部署证书时:在证书控制台下载证书文件,在服务器上配置
- 续期证书时:在证书控制台续期证书,可能需要在域名控制台上进行重新验证。
实际操作示例
示例1:个人博客(阿里云)
购买域名 → 配置DNS解析(A记录)→ 购买ECS → 部署WordPress → 申请免费证书 → DNS验证 → 部署证书 → 测试HTTPS访问
示例2:企业官网(腾讯云)
购买域名 → 配置DNS(A/CNAME/MX记录)→ 购买CVM → 部署网站代码 → 申请OV证书 → 企业验证 → 部署证书 → 安全加固
示例3:使用Cloudflare
购买域名 → 添加到Cloudflare → 修改NS记录 → 配置DNS → 启用SSL → 配置源站 → 通过CDN访问
常见问题解答
Q1:购买域名后为什么不能直接访问? 域名只是名称,需要配置DNS解析指向服务器IP才能访问,就像有了门牌号还需要在地图上登记位置。
Q2:为什么证书申请需要验证域名? 为防止恶意申请,CA需要确认申请者拥有域名控制权,保证证书安全性。
Q3:DNS解析为什么要等这么久? DNS记录修改后需在全球DNS服务器传播,通常10分钟-24小时,取决于TTL设置。
Q4:免费证书和付费证书有什么区别? 主要区别在验证级别、有效期、技术支持。免费证书只验证域名,付费证书可验证企业身份。
Q5:为什么需要在不同控制台添加记录? 域名和证书是不同服务,域名控制台管理DNS解析,证书控制台管理证书申请和部署。
Q6:一个域名可以有多个证书吗? 可以。一个域名可同时拥有多个证书,如主站和子域名使用不同证书。
Q7:证书过期了怎么办? 需重新申请并部署。建议设置自动续期,避免证书过期导致网站无法访问。
Q8:为什么HTTPS网站还会显示不安全? 可能原因:证书过期、域名不匹配、证书链不完整、混合内容(HTTP资源)等。
Q9:可以在不同平台管理域名和证书吗? 可以。域名可在阿里云,证书可在腾讯云,只要DNS解析正确配置即可。
Q10:什么是域名锁定,为什么要开启? 域名锁定是安全措施,防止域名被恶意转移。建议开启以提高安全性。
最佳实践
域名管理
- 使用强密码保护域名账户
- 启用域名锁定功能
- 设置域名自动续费
- 定期检查域名WHOIS信息
- 使用域名隐私保护服务
证书管理
- 优先使用HTTPS
- 选择合适的证书类型
- 配置完整的证书链
- 启用HSTS(HTTP Strict Transport Security)
- 定期检查证书安全配置(如SSL Labs测试)
- 使用自动续期工具
- 监控证书过期时间
安全建议
- 使用强加密算法(如TLS 1.2+)
- 禁用过时的加密套件
- 启用OCSP Stapling
- 定期更新服务器软件
- 实施安全头部(CSP、X-Frame-Options等)
