SSL证书怎么免费获取并安装?2026最全教程

2026年了,你的网站还是 HTTP?浏览器会在地址栏直接标「不安全」,用户信任度和搜索引擎排名都会受影响。好消息是,现在 SSL 证书完全免费就能搞定。

为什么 2026 年必须用 HTTPS

先说几个现实问题:

没有 HTTPS 的后果严重程度
浏览器标「不安全」🔴 高
Google 排名降权🔴 高
百度明确标注不安全🟡 中
用户输入的数据被劫持🔴 极高
HTTP/2、HTTP/3 用不了🟡 中
微信小程序 API 必须 HTTPS🔴 极高
Chrome 从 2023 年就开始了「渐进式淘汰 HTTP」计划。到 2026 年,HTTP 网站在浏览器中的待遇已经很差了。

SSL 证书的类型

证书类型验证级别费用签发速度适用
DV(域名验证)验证域名所有权免费-200元/年分钟级个人站、博客
OV(组织验证)验证企业信息500-5000元/年1-3 天中小企业官网
EV(扩展验证)最高级别验证2000-20000元/年1-2 周银行、电商
通配符证书保护 *.domain.com免费(Let's Encrypt)分钟级多子域名
99% 的个人网站用 DV 证书就够了。 Let's Encrypt 提供的 DV 证书完全免费、自动续签,比付费证书好用得多。

Let's Encrypt —— 免费 SSL 的事实标准

特性说明
费用完全免费
证书有效期90 天
自动续签支持(推荐)
通配符证书支持(需 DNS 验证)
受信任度所有主流浏览器和系统都信任
申请方式ACME 协议自动申请
Let's Encrypt 从 2015 年开始运营,到 2026 年已经签发了超过 40 亿张证书。目前全球约 70% 的 HTTPS 网站用的是 Let's Encrypt 的证书。

方法一:宝塔面板一键申请(最简单)

如果你用宝塔面板,30 秒搞定:

  1. 网站 → 设置 → SSL
  2. 选择「Let's Encrypt」
  3. 勾选你的域名
  4. 点击「申请」
  5. 申请成功后开启「强制 HTTPS」

证书每 90 天自动续签,不需要手动操作。

方法二:Certbot 手动安装(推荐学习)

Certbot 是 Let's Encrypt 的官方客户端,功能强大。

安装 Certbot

# Ubuntu/Debian
apt install certbot python3-certbot-nginx -y

# CentOS/Rocky
yum install certbot python3-certbot-nginx -y

申请证书

# 自动申请 + 配置 Nginx
certbot --nginx -d xuyunblog.com -d www.xuyunblog.com

# 按提示输入邮箱和同意协议

自动续签

# Certbot 会自动添加一个定时任务,先确认一下
certbot renew --dry-run

# 看看定时任务在哪
cat /etc/cron.d/certbot
# 或者
systemctl list-timers | grep certbot
建议手动在宝塔的计划任务里也加一条:certbot renew --quiet && nginx -s reload,每天凌晨 3 点执行。

方法三:acme.sh(轻量级替代)

acme.sh 是一个纯 Shell 脚本实现的 ACME 客户端,比 Certbot 轻量很多,不依赖 Python。

安装

curl https://get.acme.sh | sh -s email=你的邮箱

申请证书

# Webroot 方式(需要网站能访问)
acme.sh --issue -d xuyunblog.com -d www.xuyunblog.com --webroot /www/wwwroot/xuyunblog.com

# 独立模式(自动起一个临时 web 服务器验证)
acme.sh --issue -d xuyunblog.com -d www.xuyunblog.com --standalone

安装证书到 Nginx

acme.sh --install-cert -d xuyunblog.com \
  --key-file /etc/nginx/ssl/xuyunblog.com.key \
  --fullchain-file /etc/nginx/ssl/xuyunblog.com.crt \
  --reloadcmd "nginx -s reload"

acme.sh vs Certbot

对比项acme.shCertbot
安装大小几百KB几十MB(含依赖)
依赖只需要 curl/openssl需要 Python
内存占用几乎为零需要一定内存
功能完整度够用更全面
适合场景VPS 资源紧张标准部署

通配符证书(*.domain.com)

如果你有多个子域名,通配符证书比一个一个申请方便得多。

Let's Encrypt 通配符证书申请

通配符证书需要 DNS 验证(不能用 HTTP 验证):

# 使用 acme.sh + DNS 验证
acme.sh --issue -d xuyunblog.com -d *.xuyunblog.com --dns \
  --dns-ali-key "你的阿里云Key" \
  --dns-ali-secret "你的阿里云Secret"

不同域名服务商的 API 接入方式不同,acme.sh 文档里有详细列表。

如果你的域名在 Cloudflare,更简单——Cloudflare 可以直接在面板里生成免费 SSL,甚至不用自己申请。

Nginx SSL 配置优化

申请完证书后,Nginx 的配置可以做一些优化:

server {
    listen 443 ssl http2;
    server_name xuyunblog.com;

    ssl_certificate /etc/nginx/ssl/xuyunblog.com.crt;
    ssl_certificate_key /etc/nginx/ssl/xuyunblog.com.key;

    # SSL 协议版本(只允许 TLS 1.2 和 1.3)
    ssl_protocols TLSv1.2 TLSv1.3;

    # 加密套件
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers on;

    # HSTS(告诉浏览器强制使用 HTTPS)
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    # OCSP Stapling(加速 SSL 握手)
    ssl_stapling on;
    ssl_stapling_verify on;

    # ... 其他配置
}

# HTTP 强制跳转到 HTTPS
server {
    listen 80;
    server_name xuyunblog.com;
    return 301 https://$server_name$request_uri;
}

用 Cloudflare 的免费 SSL(推荐海外站)

如果你的网站面向海外用户,或者不介意流量经过 Cloudflare,可以直接用它自带的 SSL。

模式说明推荐
FlexibleCloudflare → 源站不加密❌ 不推荐
FullCloudflare → 源站加密(可用自签)⚠️ 一般
Full (Strict)源站必须有受信任的证书✅ 推荐

推荐方案:Cloudflare + 源站 Let's Encrypt 证书,选 Full (Strict) 模式。

常见问题

证书过期了怎么办?

如果设置了自动续签,一般不会过期。可以用这个命令检查:

echo | openssl s_client -servername xuyunblog.com -connect xuyunblog.com:443 2>/dev/null | openssl x509 -noout -dates

HTTPS 会不会拖慢网站?

不会,反而可能更快。HTTP/2 和 HTTP/3 只在 HTTPS 下可用,它们的性能比 HTTP/1.1 好很多。另外 SSL 握手现在有 0-RTT 技术,开销极低。

内网/开发环境要不要 HTTPS?

mkcert 工具可以生成本地信任的自签证书,开发环境用起来体验更好(浏览器不弹警告)。

# 安装 mkcert
brew install mkcert  # macOS
# 或
# https://github.com/FiloSottile/mkcert/releases 下载

mkcert -install
mkcert xuyunblog.com localhost 127.0.0.1

叙云博客系列教程持续更新。证书配置有什么不清楚的欢迎留言。

©版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容