Skip to main content

使用ZeroSSL申请免费SSL证书完整教程

· 6 min read
OHTTPS

ZeroSSL是一个提供免费SSL证书申请服务的平台,支持单域名DV证书的免费申请。该平台基于ACME协议,提供友好的Web界面和API接口,支持自动化证书管理。本文将详细介绍如何使用ZeroSSL申请免费SSL证书,包括注册、申请流程、验证方式和ACME自动化配置。

一、ZeroSSL平台介绍

1. 平台特点

免费SSL证书

  • 提供免费DV单域名证书
  • 证书有效期90天
  • 支持ACME协议自动化管理
  • 受所有主流浏览器信任

证书类型

  • 单域名证书(免费)
  • 多域名证书(付费)
  • 通配符证书(付费)

验证方式

  • HTTP验证
  • DNS验证
  • 邮箱验证

ACME支持

  • 支持ACME v2协议
  • 可以使用acme.sh、Certbot等工具
  • 提供API接口

2. 适用场景

  • 个人网站和博客
  • 小型企业网站
  • 需要免费单域名证书的场景
  • 需要ACME自动化的场景

二、注册和登录

1. 注册账号

访问ZeroSSL官网,点击"Sign Up"按钮:

  • 填写邮箱地址
  • 设置密码
  • 完成邮箱验证

2. 登录平台

使用注册的邮箱和密码登录ZeroSSL平台。

三、申请免费SSL证书

1. 创建证书申请

  1. 登录后,点击"SSL Certificates"
  2. 点击"New Certificate"
  3. 选择"90 Day Certificate"(免费)

2. 填写域名信息

  • 输入要申请证书的域名
  • 例如:www.example.com 或 example.com
  • 注意:免费证书只支持单域名

3. 选择验证方式

ZeroSSL提供三种验证方式:

HTTP验证

  • 需要在服务器上创建验证文件
  • 适合有服务器访问权限的场景

DNS验证

  • 需要在DNS服务商添加TXT记录
  • 适合无法在服务器上创建文件的场景

邮箱验证

  • 向域名管理员邮箱发送验证邮件
  • 点击邮件中的链接完成验证

4. 完成验证

HTTP验证步骤

  1. 系统显示验证文件路径和内容
  2. 在服务器上创建验证文件
  3. 确保可以通过HTTP访问验证文件
  4. 点击"Verify Domain"完成验证

DNS验证步骤

  1. 系统显示需要添加的TXT记录
  2. 在DNS服务商处添加TXT记录
  3. 等待DNS解析生效(通常几分钟)
  4. 点击"Verify Domain"完成验证

邮箱验证步骤

  1. 选择域名管理员邮箱
  2. 系统发送验证邮件
  3. 点击邮件中的验证链接
  4. 完成验证

5. 下载证书

验证通过后,可以下载证书文件:

  • 证书文件(Certificate)
  • 私钥文件(Private Key)
  • 证书链文件(Certificate Chain)

四、使用ACME自动化申请

1. 使用acme.sh

安装acme.sh

curl https://get.acme.sh | sh

申请证书

# 使用HTTP验证
~/.acme.sh/acme.sh --issue -d example.com --webroot /var/www/html

# 使用DNS验证(以Cloudflare为例)
export CF_Email="your-email@example.com"
export CF_Key="your-api-key"
~/.acme.sh/acme.sh --issue -d example.com --dns dns_cf

安装证书

~/.acme.sh/acme.sh --install-cert -d example.com \
--key-file /path/to/key.pem \
--fullchain-file /path/to/fullchain.pem \
--reloadcmd "systemctl reload nginx"

2. 使用Certbot

安装Certbot

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install certbot

# CentOS/RHEL
sudo yum install certbot

申请证书

# 使用HTTP验证
sudo certbot certonly --webroot -w /var/www/html -d example.com

# 使用DNS验证
sudo certbot certonly --manual --preferred-challenges dns -d example.com

3. 配置自动更新

acme.sh自动更新: acme.sh会自动创建cron任务,定期检查并更新证书。

Certbot自动更新

# 测试自动更新
sudo certbot renew --dry-run

# 设置自动更新(certbot会自动创建systemd timer)

五、证书配置

1. Nginx配置

server {
listen 443 ssl http2;
server_name example.com;

ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
ssl_trusted_certificate /path/to/chain.crt;

# SSL配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

# 其他配置...
}

2. Apache配置

<VirtualHost *:443>
ServerName example.com
SSLEngine on

SSLCertificateFile /path/to/certificate.crt
SSLCertificateKeyFile /path/to/private.key
SSLCertificateChainFile /path/to/chain.crt

# SSL配置
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!aNULL:!MD5

# 其他配置...
</VirtualHost>

六、证书更新

1. 手动更新

证书到期前,需要手动更新:

  1. 登录ZeroSSL平台
  2. 找到需要更新的证书
  3. 点击"Renew"按钮
  4. 重新完成验证
  5. 下载新证书并更新到服务器

2. 自动更新

使用ACME工具可以实现自动更新:

  • acme.sh会自动更新证书
  • Certbot可以配置自动更新
  • 确保证书在到期前更新

七、API使用

1. 获取API密钥

  1. 登录ZeroSSL平台
  2. 进入"Developer"页面
  3. 创建API密钥
  4. 保存API密钥

2. 使用API申请证书

# 创建证书
curl -X POST https://api.zerossl.com/certificates \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "certificate_domains=example.com" \
-d "certificate_validity_days=90" \
-d "certificate_csr=$(cat csr.txt)"

3. 验证域名

# HTTP验证
curl -X POST https://api.zerossl.com/certificates/{id}/challenges \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "validation_method=HTTP_CSR_HASH"

八、常见问题

1. 验证失败

可能原因

  • DNS记录未生效
  • HTTP验证文件无法访问
  • 验证超时

解决方法

  • 检查DNS解析
  • 检查HTTP验证文件路径
  • 等待DNS解析生效后重试

2. 证书下载失败

可能原因

  • 证书未签发成功
  • 网络问题

解决方法

  • 检查证书状态
  • 重新下载证书
  • 检查网络连接

3. 免费证书限制

限制说明

  • 免费证书只支持单域名
  • 证书有效期90天
  • 需要定期更新

解决方案

  • 使用ACME工具自动更新
  • 或升级到付费证书获得更长有效期

九、与OHTTPS的对比

1. 功能对比

特性ZeroSSLOHTTPS
免费证书✅ 单域名✅ 单域名/多域名/通配符
证书有效期90天90天
自动更新⚠️ 需ACME工具✅ 平台自动
自动部署
证书监控
多域名证书❌ 免费✅ 免费
通配符证书❌ 免费✅ 免费

2. 适用场景

ZeroSSL适合

  • 只需要单域名证书
  • 熟悉ACME协议
  • 可以自行配置自动更新

OHTTPS适合

  • 需要多域名或通配符证书
  • 需要自动化管理
  • 需要自动部署和监控

总结

ZeroSSL是一个提供免费SSL证书申请服务的平台,支持单域名DV证书的免费申请。通过ZeroSSL,您可以免费申请SSL证书,并使用ACME工具实现自动化管理。

如果您需要多域名或通配符证书,或者需要更完整的自动化管理功能(如自动部署、证书监控),建议使用OHTTPS平台,它提供了更全面的证书管理服务。

OHTTPS: 免费HTTPS证书/SSL证书申请 • 自动化更新、部署、监控
OHTTPS 支持通过多种域名验证方式(DNS验证、HTTP验证、文件验证等)申请免费的HTTPS证书/SSL证书,包括单域名证书、多域名证书、通配符证书、IP证书等,支持HTTPS证书/SSL证书的自动化更新、自动化部署、自动化监控及告警等,并支持将HTTPS证书/SSL证书自动化部署至阿里云、腾讯云、群晖NAS、百度云、七牛云、多吉云、又拍云、宝塔面板、Docker容器、SSH等,实现HTTPS证书/SSL证书的一站式申请、更新、部署、监控和管理。