不花一分钱,也能给自己的网站加上“小绿锁”

建站初期,很多个人站长都会纠结一个问题:要不要上 HTTPS? 买证书要花钱,免费的又怕不靠谱。其实,今天已经有很多成熟的免费方案,完全可以满足个人博客、小型项目的需求。本文就来聊聊我个人用过的几种方案,并给出最实在的建议。

为什么要折腾 HTTPS?

简单说两点:

  • 浏览器不“警告”:没有 HTTPS,Chrome 会在地址栏标记“不安全”,非常劝退访客。
  • SEO 友好:搜索引擎更青睐 HTTPS 站点。

既然好处明显,付费证书动辄几百上千,个人站长完全可以从免费方案入手。

方案一:云厂商“白送”的证书——最适合新手

如果你用的是阿里云、腾讯云、华为云等国内云服务器,它们都提供了免费 DV 证书。以阿里云为例:

  1. 登录控制台 → 找到“数字证书管理服务”(SSL 证书)。
  2. 点击“购买证书”,筛选“免费版”(DigiCert 品牌,单域名,有效期 1 年,实际 3 个月,但可续期)。
  3. 填写域名,选择 DNS 验证(在域名解析加一条 TXT 记录)或文件验证。
  4. 审核通过后下载证书,按你的 Web 服务器(Nginx/Apache)配置即可。

✅ 优点:操作全程中文,跟自己的云产品无缝对接,有客服。
❌ 缺点:每个实名主体每自然年只有 20 张(其实够用),有效期只有 90 天,且仅支持主域名或 www 的一个单域名。

小技巧:虽然只有 90 天,但云厂商一般会提前提醒续期,手动重签一次也很简单。

方案二:Let‘s Encrypt + acme.sh —— 技术玩家的最爱

如果你不满足于单域名,或者希望完全自动化(比如申请泛域名证书 *.example.com),那 Let’s Encrypt 就是不二之选。它是 Linux 基金会旗下的公益 CA,全球信任。

配合 acme.sh 这个纯 Shell 脚本,可以实现:

  • 90 天有效期,到期自动续期(通过 crontab)。
  • 支持 DNS API 自动验证(针对阿里云、腾讯云、Cloudflare 等上百家 DNS 服务商)。
  • 通配符证书(需要 DNS 验证)。

基本操作(以 Nginx 为例):

# 安装 acme.sh
curl https://get.acme.sh | sh

# 申请证书(DNS 手动模式,适合单次)
acme.sh --issue -d yourdomain.com --webroot /var/www/html/

# 或者使用 DNS API 自动模式(需要提前配置密钥)
export Ali_Key="你的AccessKey"
export Ali_Secret="你的AccessKeySecret"
acme.sh --issue --dns dns_ali -d example.com -d '*.example.com'

# 安装证书到 Nginx 目录
acme.sh --install-cert -d example.com \
  --key-file /etc/nginx/ssl/example.com.key \
  --fullchain-file /etc/nginx/ssl/example.com.cer \
  --reloadcmd "systemctl force-reload nginx"

✅ 优点:完全免费、开源、支持泛域名、全自动续期、无需人工干预。
❌ 缺点:需要命令行操作,对纯小白有一定门槛。另外 Let’s Encrypt 的服务器在国外,国内某些网络环境下可能连接不稳定,建议通过代理或使用国内镜像(比如 https://github.com/acmesh-official/acme.sh/wiki/China-Network 有说明)。

实测:阿里云香港轻量服务器拉取 acme.sh 正常,大陆某些小运营商可能需要换 DNS 验证方式。

方案三:其他免费 CA + 自动化托管——折中之路

如果既不想深入命令行,又觉得云厂商的 90 天手动续签麻烦,还可以考虑:

  • JoySSL(国产 CA):提供免费单域名证书,支持中文界面,有文档指引,适合对国密有要求的场景。
  • TrustAsia(通过七牛云、又拍云等 CDN 赠送):如果你用了 CDN 服务,它们的 SSL 控制台也提供免费 DV 证书,一键部署,续期跟着 CDN 平台走。
  • OHTTPS(第三方自动化工具):可以用它来统一管理 Let’s Encrypt 或其他免费证书,并自动部署到阿里云、腾讯云、Nginx 等,提供可视化操作。

我个人的选择与建议

我的网站类型 推荐方案 理由
个人博客,日 IP < 100 云厂商免费证书 省事,不用额外折腾,每次续期 5 分钟搞定
折腾型博主,有二级域名(如 dev.example.com) Let‘s Encrypt + acme.sh 自动续期,一劳永逸,还能练练 Linux 技能
使用了 CDN 的网站 CDN 提供商自带免费证书 云端自动配置,回源可用自签证书(内网)
需要国密合规 JoySSL 国内 CA,支持双算法证书(免费版功能有限)

一点踩坑经验分享

  1. 证书混合内容问题:上了 HTTPS 后,网站里引用的图片、CSS、JS 必须也走 HTTPS,否则会被浏览器拦截。可以全局做一次替换。
  2. 有效期短是好事:90 天证书强制你自动化或定期检查,反而更安全。千万别想着“一次性买 5 年”,付费证书最长也就 1 年左右(行业趋势缩短有效期)。
  3. 备份好私钥:不管是云厂商还是 Let’s Encrypt,下载的 .key 文件要妥善保管,泄露等于域名被“冒领”。
  4. 测试环境用自签证书:本地开发调试可用 openssl 生成自签名证书,浏览器会报不安全,但仅用于测试无大碍。

写在最后

免费 HTTPS 早已不是“将就”的方案。无论是国内云厂商赠送的证书,还是 Let’s Encrypt 这类公益项目,都足以给个人网站提供可靠的安全保护。

我自己的几个小站,有的用了两年多的 Let’s Encrypt,从未手动续期过;有的图省心直接走了云厂商。总之,先行动起来,把那个“不安全”的灰色感叹号去掉,你的访客体验会提升一大截。

如果你在操作过程中遇到问题,欢迎留言交流。下一篇我会聊聊 Nginx 配置 HTTPS 的最佳安全实践(HSTS、OCSP Stapling 等),敬请期待。