本文目录导读:

申请免费的SSL证书,最常见且推荐的方式是通过Let's Encrypt,它是一个全球性的、自动化运行的证书颁发机构(CA),提供完全免费的SSL/TLS证书。
以下是几种主流的申请方法,您可以根据自己的技术水平和服务器环境选择:
使用 Certbot(最推荐,自动化程度高)
Certbot 是 Let's Encrypt 官方推荐的客户端工具,可以自动完成从申请到部署的所有步骤。
适用人群: 拥有服务器SSH访问权限,对Linux命令行有一定了解。
操作步骤(以 Ubuntu/CentOS 和 Nginx/Apache 为例):
- 登录服务器:通过SSH连接您的云服务器。
- 安装 Certbot:
- Ubuntu/Debian:
sudo apt update sudo apt install certbot python3-certbot-nginx
(如果使用Apache,将
python3-certbot-nginx替换为python3-certbot-apache) - CentOS/RHEL:
sudo yum install epel-release sudo yum install certbot python3-certbot-nginx
- Ubuntu/Debian:
- 运行 Certbot 获取证书:
sudo certbot --nginx
(或
sudo certbot --apache)- 首次运行:会询问您的邮箱(用于紧急通知和续期提醒),并同意服务条款。
- 选择域名:它会自动检测您Nginx/Apache配置中的域名,让您选择需要添加HTTPS的域名。
- 自动配置:Certbot会自动修改您的Web服务器配置,开启HTTPS并重定向HTTP到HTTPS。
- 自动续期:
Let's Encrypt 证书有效期为90天,Certbot默认会添加一个定时任务(cron job或systemd timer)来自动续期,您无需手动操作。
- 测试续期:可以运行
sudo certbot renew --dry-run测试自动续期是否正常工作。
- 测试续期:可以运行
使用 ACME.sh(适合自动化脚本和DNS验证)
对于需要通配符证书(覆盖*.example.com)或使用DNS服务商(如阿里云DNS、Cloudflare)的用户,acme.sh是一个更灵活的纯Shell脚本方案。
适用人群: 需要通配符证书或希望完全通过脚本自动化流程的用户。
操作步骤(简化版):
-
安装 acme.sh:
curl https://get.acme.sh | sh -s email=your_email@example.com
安装后,重新登录或执行
source ~/.bashrc使其生效。 -
设置DNS API(以阿里云为例):
- 登录阿里云控制台,获取Access Key ID和Access Key Secret。
- 在服务器上设置环境变量:
export Ali_Key="Your_Key_ID" export Ali_Secret="Your_Key_Secret"
-
申请证书(使用DNS验证):
- 申请普通域名:
acme.sh --issue --dns dns_ali -d example.com -d www.example.com - 申请通配符域名:
acme.sh --issue --dns dns_ali -d example.com -d '*.example.com' dns_ali对应阿里云,dns_cf对应Cloudflare,其他服务商同理。
- 申请普通域名:
-
安装证书到Web服务器: 命令会自动生成证书文件,您需要手动复制或使用
--install-cert参数将其安装到Nginx/Apache的配置中,具体路径和参数请参考acme.sh的文档。
使用云服务商或CDN的免费证书
很多国内云厂商和CDN服务商提供免费的SSL证书,通常是单域名证书,有效期1年。
适用人群: 不想折腾服务器,直接使用了云厂商的CDN/负载均衡/API网关等服务。
操作步骤(以阿里云、腾讯云、Cloudflare为例):
- 阿里云/腾讯云:
- 登录控制台,搜索“SSL证书”。
- 选择“免费证书”(通常每个账号有一定数量限制,例如20个)。
- 按提示填写域名、验证域名所有权(通常通过DNS解析记录验证)。
- 验证通过后,证书会颁发,您需要手动下载证书文件,然后上传到您的Web服务器或直接部署到阿里云/腾讯云的SLB/CDN服务中。
- Cloudflare(全球最广泛使用的CDN):
- 将您的域名DNS服务器托管到Cloudflare。
- 在Cloudflare控制台 -> SSL/TLS -> Overview 中,选择“Full(strict)”模式。
- Cloudflare会自动为您的域名申请并部署一个来自Let's Encrypt的证书(边缘证书),无需您自行操作。
- 注意:这种情况下,Cloudflare到用户浏览器之间是HTTPS,但Cloudflare到您的源服务器之间,需要您源服务器本身也配置好证书(可以用前面方法一或二申请)。
注意事项
- 域名所有权验证:无论哪种方法,都必须证明您拥有该域名,通常通过HTTP验证(在服务器上放一个特定文件)或DNS验证(添加一个TXT解析记录)完成。
- 证书有效期:Let's Encrypt 证书为90天,云厂商免费证书通常为1年,记得设置续期提醒或自动续期。
- 免费证书局限:免费证书(特别是单域名)不支持泛域名(),也不支持多域名(SAN),如果需要用一个证书保护多个不同顶级域名,可能需要购买付费证书。
- 安全提醒:不建议使用来源不明的“一键免费SSL”网站或工具,它们可能包含恶意代码或窃取您的私钥,坚持使用官方工具(如Certbot、acme.sh)或主流云服务商。
总结建议
- 如果您有服务器且熟悉命令行:Certbot 是最省心、最标准的选择,一键安装配置。
- 如果您需要通配符证书或使用DNS验证:acme.sh 是最佳工具。
- 如果您使用CDN(如Cloudflare):直接使用CDN提供的自动证书,几乎零配置。
- 如果您使用国内云厂商的API网关、负载均衡:使用他们自带的免费证书管理服务。
选择您最熟悉或最适合当前架构的方式即可,如果遇到具体报错,可以查看对应工具的官方文档或搜索相关错误信息,通常都有成熟的解决方案。