如何申请免费的SSL证书?

wen IT资讯 239

本文目录导读:

如何申请免费的SSL证书?

  1. 方法一:使用 Certbot(最推荐,自动化程度高)
  2. 方法二:使用 ACME.sh(适合自动化脚本和DNS验证)
  3. 方法三:使用云服务商或CDN的免费证书
  4. 注意事项
  5. 总结建议

申请免费的SSL证书,最常见且推荐的方式是通过Let's Encrypt,它是一个全球性的、自动化运行的证书颁发机构(CA),提供完全免费的SSL/TLS证书。

以下是几种主流的申请方法,您可以根据自己的技术水平和服务器环境选择:

使用 Certbot(最推荐,自动化程度高)

Certbot 是 Let's Encrypt 官方推荐的客户端工具,可以自动完成从申请到部署的所有步骤。

适用人群: 拥有服务器SSH访问权限,对Linux命令行有一定了解。

操作步骤(以 Ubuntu/CentOS 和 Nginx/Apache 为例):

  1. 登录服务器:通过SSH连接您的云服务器。
  2. 安装 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
  3. 运行 Certbot 获取证书
    sudo certbot --nginx

    (或 sudo certbot --apache

    • 首次运行:会询问您的邮箱(用于紧急通知和续期提醒),并同意服务条款。
    • 选择域名:它会自动检测您Nginx/Apache配置中的域名,让您选择需要添加HTTPS的域名。
    • 自动配置:Certbot会自动修改您的Web服务器配置,开启HTTPS并重定向HTTP到HTTPS。
  4. 自动续期: 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脚本方案。

适用人群: 需要通配符证书或希望完全通过脚本自动化流程的用户。

操作步骤(简化版):

  1. 安装 acme.sh

    curl https://get.acme.sh | sh -s email=your_email@example.com

    安装后,重新登录或执行 source ~/.bashrc 使其生效。

  2. 设置DNS API(以阿里云为例)

    • 登录阿里云控制台,获取Access Key ID和Access Key Secret。
    • 在服务器上设置环境变量:
      export Ali_Key="Your_Key_ID"
      export Ali_Secret="Your_Key_Secret"
  3. 申请证书(使用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,其他服务商同理。
  4. 安装证书到Web服务器: 命令会自动生成证书文件,您需要手动复制或使用--install-cert参数将其安装到Nginx/Apache的配置中,具体路径和参数请参考acme.sh的文档。

使用云服务商或CDN的免费证书

很多国内云厂商和CDN服务商提供免费的SSL证书,通常是单域名证书,有效期1年。

适用人群: 不想折腾服务器,直接使用了云厂商的CDN/负载均衡/API网关等服务。

操作步骤(以阿里云、腾讯云、Cloudflare为例):

  • 阿里云/腾讯云
    1. 登录控制台,搜索“SSL证书”。
    2. 选择“免费证书”(通常每个账号有一定数量限制,例如20个)。
    3. 按提示填写域名、验证域名所有权(通常通过DNS解析记录验证)。
    4. 验证通过后,证书会颁发,您需要手动下载证书文件,然后上传到您的Web服务器或直接部署到阿里云/腾讯云的SLB/CDN服务中。
  • Cloudflare(全球最广泛使用的CDN)
    1. 将您的域名DNS服务器托管到Cloudflare。
    2. 在Cloudflare控制台 -> SSL/TLS -> Overview 中,选择“Full(strict)”模式。
    3. Cloudflare会自动为您的域名申请并部署一个来自Let's Encrypt的证书(边缘证书),无需您自行操作。
    • 注意:这种情况下,Cloudflare到用户浏览器之间是HTTPS,但Cloudflare到您的源服务器之间,需要您源服务器本身也配置好证书(可以用前面方法一或二申请)。

注意事项

  1. 域名所有权验证:无论哪种方法,都必须证明您拥有该域名,通常通过HTTP验证(在服务器上放一个特定文件)或DNS验证(添加一个TXT解析记录)完成。
  2. 证书有效期:Let's Encrypt 证书为90天,云厂商免费证书通常为1年,记得设置续期提醒或自动续期。
  3. 免费证书局限:免费证书(特别是单域名)不支持泛域名(),也不支持多域名(SAN),如果需要用一个证书保护多个不同顶级域名,可能需要购买付费证书。
  4. 安全提醒:不建议使用来源不明的“一键免费SSL”网站或工具,它们可能包含恶意代码或窃取您的私钥,坚持使用官方工具(如Certbot、acme.sh)或主流云服务商。

总结建议

  • 如果您有服务器且熟悉命令行Certbot 是最省心、最标准的选择,一键安装配置。
  • 如果您需要通配符证书或使用DNS验证acme.sh 是最佳工具。
  • 如果您使用CDN(如Cloudflare):直接使用CDN提供的自动证书,几乎零配置。
  • 如果您使用国内云厂商的API网关、负载均衡:使用他们自带的免费证书管理服务。

选择您最熟悉或最适合当前架构的方式即可,如果遇到具体报错,可以查看对应工具的官方文档或搜索相关错误信息,通常都有成熟的解决方案。

抱歉,评论功能暂时关闭!