SSL 证书原理与申请

📅 2026-10-13 20:38 👤 ajie2012 📁 网络技术 👁 1 阅读

浏览器地址栏的小锁头,就是 SSL 证书在工作。这篇讲清楚它是什么、怎么免费申请。

一、HTTP vs HTTPS

HTTP:明文传输。你在网站输入的密码、提交的表单,路上 anyone 都能偷看(中间人攻击)。

HTTPS = HTTP + SSL/TLS 加密:传输内容加密,别人截获也看不懂;同时验证服务器身份,防止钓鱼网站冒充。

现在所有网站都应该上 HTTPS,浏览器会对纯 HTTP 网站标”不安全”,影响用户信任和搜索排名。

二、证书是什么

SSL 证书是一份数字身份证,由受信任的机构(CA)签发,包含:

  • 域名(这份证书给谁用)
  • 公钥(用来加密通信)
  • 签发机构和有效期
  • CA 的数字签名(证明这份证书是真的)

浏览器内置了各大 CA 的根证书,收到网站证书后验证签名,确认无误才显示小锁头。

三、证书类型

  • DV(域名验证):只验证你是域名所有者,免费,个人博客够用
  • OV(组织验证):验证企业身份,收费,企业用
  • EV(扩展验证):最严格,收费,金融网站用

个人博客用免费的 DV 证书就行,加密效果一样。

四、免费证书来源

  • Let’s Encrypt:最常用,免费,90 天有效期,可自动续期
  • ZeroSSL:免费,界面友好
  • Cloudflare:用 CF 的 CDN 自带免费证书
  • 宝塔面板:一键申请 Let’s Encrypt

五、实操:Certbot 申请(Nginx)

1. 安装 Certbot

sudo apt install certbot python3-certbot-nginx -y

2. 申请并自动配置

sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

按提示输入邮箱(用于过期提醒),同意服务条款,选择是否强制 HTTPS(选是)。

Certbot 会自动:验证域名所有权 → 下载证书 → 修改 Nginx 配置 → 重载 Nginx。

3. 验证

浏览器打开 https://yourdomain.com,小锁头出现。也可以命令行验证:

curl -vI https://yourdomain.com 2>&1 | grep -i "SSL certificate"

4. 自动续期

Let’s Encrypt 证书 90 天过期,Certbot 已设置 systemd 定时器自动续:

sudo systemctl status certbot.timer
# 手动测试续期
sudo certbot renew --dry-run

六、证书文件位置

/etc/letsencrypt/live/yourdomain.com/
├── fullchain.pem  # 证书链(发给浏览器)
├── privkey.pem    # 私钥(保密!)
├── cert.pem       # 证书本体
└── chain.pem      # 中间证书

privkey.pem 绝不能泄露,谁拿到它谁就能冒充你的网站。

七、常见问题

  • 申请失败:确认域名已解析到这台服务器(A 记录),80 端口开放
  • mixed content 警告:页面里混了 http 资源,改成 https 或相对路径
  • 证书过期:检查 certbot.timer 是否运行,手动跑 renew

本文为杰哥的折腾笔记原创教程,转载请注明出处。

发表评论