免费 SSL 证书申请教程:2026 HTTPS 配置完整指南
免费 SSL 证书申请教程:2026 HTTPS 配置完整指南">
一、免费SSL证书的常见申请渠道
在2026年,HTTPS已经成为网站运营的基本门槛。无论你是个人博客还是小型资源站,部署HTTPS不仅保护用户数据,还能提升搜索引擎排名。免费SSL证书由非营利组织或商业机构提供,其中最主流的是Let's Encrypt和ZeroSSL,它们都提供90天有效期的DV证书。此外还有Cloudflare的源证书、CertCenter等,但Let'sEncrypt和ZeroSSL最为通用。
申请免费SSL证书前,你需要明确一个关键点:证书类型。DV(域名验证)证书适合绝大多数网站,仅需验证域名所有权,免费SSL证书正是这种类型。以下列出常见渠道的特点:
- Let's Encrypt:完全自动化,通过ACME协议可一键申请,支持Wildcard(通配符)证书,推荐使用Certbot客户端。
- ZeroSSL:提供Web控制面板,支持手动或API申请,同样免费,有效期90天,可一键续期。
- Cloudflare Origin Certificate:如果你使用Cloudflare CDN,可申请15年有效期的源服务器证书,但需搭配Cloudflare使用。
- SSL.com等商业提供免费试用版,但通常有功能限制,不推荐长期使用。
本章节与站内隐私安全分类密切相关:部署免费SSL证书是保护用户提交数据(如登录、支付)的基础操作,本站隐私安全分类下有大量HTTPS配置与安全加固教程,建议读者搭配学习。
二、使用Certbot自动申请Let's Encrypt证书
Certbot是Let's Encrypt官方推荐的ACME客户端,支持Linux/macOS的各大发行版,也支持Windows(通过WSL)。下面以Ubuntu 22.04 + Nginx环境为例,展示一行命令申请免费SSL证书。
准备工作
- 确保你的域名已解析到服务器IP(例如
yoursite.com) - 服务器已安装Nginx,并已配置一个基本站点(80端口可访问)
- 开放80和443端口(防火墙或云安全组)
安装与申请步骤
添加Certbot PPA并安装:
bashsudo apt update sudo apt install certbot python3-certbot-nginx使用certbot自动配置Nginx并申请证书:
bashsudo certbot --nginx --email [email protected] -d yoursite.com此命令会自动验证域名、下载证书、修改Nginx配置(添加ssl相关指令)。
确认证书有效:运行
sudo certbot certificates可查看证书列表和到期时间。测试HTTPS:访问
https://yoursite.com,浏览器应显示安全锁。
Certbot自动申请非常方便,但注意:如果Nginx配置中有多个server block,certbot可能只修改默认的。建议提前为需要证书的站点单独做server block。另外,免费SSL证书有效期90天,Certbot会通过systemd定时任务自动续期,你基本无需操心。
对于使用**Linux/macOS分类的读者,以上命令全部适配。本站Linux/macOS**分类下有更多服务器运维教程,比如防火墙配置、定时任务设置,都与证书续期息息相关。
三、使用ZeroSSL手动申请证书
如果你的服务器环境不支持Certbot,或者你偏好可视化网页操作,ZeroSSL是一个极佳选择。ZeroSSL提供免费版,同样支持泛域名证书,且可通过Web面板一键下载。
手动申请步骤
- 访问ZeroSSL官网并注册免费账号(需邮箱)。
- 在Dashboard点击“New Certificate”,输入域名(例如
yoursite.com或*.yoursite.com)。 - 选择验证方式:推荐DNS验证(CNAME记录),也可以使用HTTP文件验证或Email验证。
- 根据提示添加DNS记录(在域名管理后台添加TXT值或CNAME),或上传验证文件到网站根目录。
- 等待验证通过(通常几分钟),然后下载证书文件:包含
fullchain.pem和private.pem。 - 将这两个文件上传到服务器指定目录,例如
/etc/ssl/zero/。
Nginx中手动配置
server {
listen 443 ssl;
server_name yoursite.com;
ssl_certificate /etc/ssl/zero/fullchain.pem;
ssl_certificate_key /etc/ssl/zero/private.pem;
# 其余配置...
}ZeroSSL的优势在于不依赖服务器环境,你可以在任何有浏览器的设备上操作。缺点是需要手动续期(每90天),但ZeroSSL会自动发送续期提醒邮件。你也可以使用它的API实现自动续期。
提到文本工具分类:ZeroSSL的验证过程常常需要编辑DNS或上传文本文件,本站文本工具分类中的“在线文件编辑器”或“DNS记录生成器”可辅助完成这些操作。
四、免费SSL证书的续期与自动化
90天有效期让很多人头疼,但自动化续期早已成熟。以下是两种主流方案。
方案一:Certbot的自动续期
Certbot默认会在系统中添加一个systemd timer(或cron job),每天检查证书到期情况。你只需验证:
sudo systemctl status certbot.timer如果显示active (running),则无需任何操作。若想手动模拟续期,运行 sudo certbot renew --dry-run 测试是否成功。
方案二:使用acme.sh(第三方客户端)
acme.sh是一个轻量级纯Shell脚本,支持更多DNS API,适合需要通配符证书且不想依赖Certbot的用户。
- 安装acme.sh:bash
curl https://get.acme.sh | sh - 申请证书(以Cloudflare API为例):bash
export CF_Email="[email protected]" export CF_GlobalKey="你的Global API Key" ~/.acme.sh/acme.sh --issue --dns dns_cf -d yoursite.com -d *.yoursite.com - 自动续期:acme.sh会安装cron任务,每日检查。也可手动执行
~/.acme.sh/acme.sh --renew -d yoursite.com。
续期失败排查
- 检查域名解析是否正常
- 确保80端口(HTTP验证)或DNS记录未被修改
- 查看日志:
/var/log/letsencrypt/或 acme.sh的~/.acme.sh/
对于下载资源分类:许多用户下载的服务器面板(如宝塔、1Panel)内置了免费SSL证书自动续期功能,本站下载资源分类提供这些面板的安装包及配置教程,可大幅简化操作。
五、Nginx中配置HTTPS(含重定向)
申请到免费SSL证书后,最后一步是配置Nginx,让网站以HTTPS提供服务,并强制HTTP跳转到HTTPS。
基础HTTPS配置
server {
listen 443 ssl http2; # 启用HTTP/2提升性能
server_name yoursite.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/private.key;
# 推荐安全配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256...;
ssl_prefer_server_ciphers on;
# 其余站点配置(root、index等)
}HTTP重定向到HTTPS
server {
listen 80;
server_name yoursite.com;
return 301 https://$host$request_uri;
}进阶优化
- 开启HSTS:在HTTPS server块中添加
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; - 使用OCSP Stapling提高验证速度
- 检查SSL Score:访问 SSLLabs 测试
本章节内容可与站内网络工具分类关联:本站网络工具分类提供在线SSL检测、端口扫描等工具,配置后建议用这些工具验证HTTPS的正确性与安全等级。
常见问题 FAQ
Q1:免费SSL证书和付费SSL证书有什么区别? A:免费SSL证书(如Let's Encrypt)属于DV(域名验证)证书,只验证域名所有权,有效期90天,适合个人博客、中小型网站。付费SSL证书通常提供OV(组织验证)或EV(扩展验证),有效期1年+,包含商业身份认证,适合电商、金融等高信任需求场景。对于大多数内容型网站,免费SSL证书完全够用。
Q2:续期失败怎么办?证书过期了还能恢复吗? A:如果证书过期不超过30天,可以直接重新申请(等同于新签发)。若续期失败,先检查80端口是否开放(HTTP验证方式)或DNS记录是否正确。最可靠的方法是使用acme.sh配合DNS API,几乎不会因端口问题失败。另外建议设置邮件提醒,ZeroSSL和Certbot都会提前通知。
Q3:是否支持通配符(Wildcard)证书? A:Let's Encrypt和ZeroSSL都支持免费通配符证书(如 *.yoursite.com),但只能通过DNS验证方式申请。使用Certbot时需要添加 --manual --preferred-challenges dns 参数,或使用acme.sh配合DNS API自动化。通配符证书可以保护所有子域名,非常适合多站点统一管理。
Q4:免费SSL证书影响网站速度吗? A:启用HTTPS会轻微增加握手延迟,但现代服务器和浏览器已优化到几乎无感知。通过开启HTTP/2、OCSP Stapling、使用ECC证书(Let's Encrypt默认支持)等方式,甚至可以比HTTP更快。本站开发者工具分类中有网站性能优化教程,建议配合使用。
延伸阅读