不花一分钱,也能给自己的网站加上“小绿锁”
建站初期,很多个人站长都会纠结一个问题:要不要上 HTTPS? 买证书要花钱,免费的又怕不靠谱。其实,今天已经有很多成熟的免费方案,完全可以满足个人博客、小型项目的需求。本文就来聊聊我个人用过的几种方案,并给出最实在的建议。
为什么要折腾 HTTPS?
简单说两点:
- 浏览器不“警告”:没有 HTTPS,Chrome 会在地址栏标记“不安全”,非常劝退访客。
- SEO 友好:搜索引擎更青睐 HTTPS 站点。
既然好处明显,付费证书动辄几百上千,个人站长完全可以从免费方案入手。
方案一:云厂商“白送”的证书——最适合新手
如果你用的是阿里云、腾讯云、华为云等国内云服务器,它们都提供了免费 DV 证书。以阿里云为例:
- 登录控制台 → 找到“数字证书管理服务”(SSL 证书)。
- 点击“购买证书”,筛选“免费版”(DigiCert 品牌,单域名,有效期 1 年,实际 3 个月,但可续期)。
- 填写域名,选择 DNS 验证(在域名解析加一条 TXT 记录)或文件验证。
- 审核通过后下载证书,按你的 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,支持双算法证书(免费版功能有限) |
一点踩坑经验分享
- 证书混合内容问题:上了 HTTPS 后,网站里引用的图片、CSS、JS 必须也走 HTTPS,否则会被浏览器拦截。可以全局做一次替换。
- 有效期短是好事:90 天证书强制你自动化或定期检查,反而更安全。千万别想着“一次性买 5 年”,付费证书最长也就 1 年左右(行业趋势缩短有效期)。
- 备份好私钥:不管是云厂商还是 Let’s Encrypt,下载的
.key文件要妥善保管,泄露等于域名被“冒领”。 - 测试环境用自签证书:本地开发调试可用
openssl生成自签名证书,浏览器会报不安全,但仅用于测试无大碍。
写在最后
免费 HTTPS 早已不是“将就”的方案。无论是国内云厂商赠送的证书,还是 Let’s Encrypt 这类公益项目,都足以给个人网站提供可靠的安全保护。
我自己的几个小站,有的用了两年多的 Let’s Encrypt,从未手动续期过;有的图省心直接走了云厂商。总之,先行动起来,把那个“不安全”的灰色感叹号去掉,你的访客体验会提升一大截。
如果你在操作过程中遇到问题,欢迎留言交流。下一篇我会聊聊 Nginx 配置 HTTPS 的最佳安全实践(HSTS、OCSP Stapling 等),敬请期待。