ZeroSSL 申请免费SSL证书的方法
ZeroSSL 是一家提供免费SSL证书的服务商,其免费证书有效期为90天,适合个人博客、小型网站或测试环境使用。下面是在ZeroSSL官网申请免费SSL证书的步骤。
### 📌 ZeroSSL 免费SSL证书主要特点
在开始申请之前,我们先通过一个表格快速了解 ZeroSSL 免费证书的主要特点:
| 特性 | 说明 |
| :----------- | :----------------------------------------- |
| **证书类型** | 单域名、多域名、通配符(泛域名)、IP证书 |
| **有效期** | 90天 |
| **续期** | 支持免费续期,可手动或通过ACME自动化 |
| **验证方式** | DNS解析、HTTP文件上传、邮箱验证 |
| **自动续期** | 通过ACME工具(如acme.sh)支持 |
### 📝 在ZeroSSL官网申请免费SSL证书
如果你想通过ZeroSSL官网申请,主要步骤如下图所示:
```mermaid
flowchart TD
A[访问ZeroSSL官网并注册账号] --> B[创建新证书并填写域名]
B --> C[选择90天免费证书]
C --> D[选择验证方式]
D --> D1[DNS验证]
D --> D2[HTTP文件验证]
D --> D3[邮箱验证]
D1 --> E[完成域名所有权验证]
D2 --> E
D3 --> E
E --> F[下载证书文件]
F --> G[在服务器上安装证书]
```
下面是各环节的具体操作说明:
1. **注册ZeroSSL账号**:
* 访问 ZeroSSL 官网 ([https://zerossl.com](https://zerossl.com))。
* 点击“Get Free SSL”或“Sign Up”注册新账号,通常需要使用邮箱进行注册。
2. **创建新证书**:
* 登录后,在控制面板点击“**New Certificate**”。
* 输入你需要申请证书的**域名**。如果你想为纯IP地址申请SSL证书,也可以在此输入IP地址。
3. **选择证书类型**:
* 在证书类型页面,选择“**90-Day Certificate**”(90天证书),这是免费的选项。
4. **生成CSR(证书签名请求)**:
* 通常可以选择“**Auto-Generate CSR**”(自动生成CSR),让ZeroSSL为你处理。CSR包含了你的域名和组织信息(如所在地和国家)。
5. **选择验证方式**:
* 验证域名所有权是必须的步骤。ZeroSSL主要提供三种方式:
* **HTTP文件上传验证**:下载验证文件并上传到服务器指定目录,确保可通过HTTP访问。
* **DNS解析验证**:在域名DNS管理后台添加指定的TXT或CNAME记录。
* **邮箱验证**:选择域名管理员邮箱(如admin@, webmaster@等),接收验证邮件并点击链接或输入验证码完成验证。这是比较快速和简单的方法。
6. **完成验证并下载证书**:
* 验证通过后,状态会更新。点击“**Install Certificate**”即可下载证书文件。
* 证书通常以ZIP格式提供,包含以下文件:
* `certificate.crt`:域名证书
* `ca_bundle.crt`:中间证书链
* `private.key`:私钥(请务必安全保管)
### ⚙️ 在服务器上安装证书
下载证书后,需要将其安装到你的Web服务器上。以Nginx为例:
1. **上传证书文件**:将下载的证书文件(`certificate.crt`、`ca_bundle.crt` 和 `private.key`)上传到服务器上的一个目录,例如 `/etc/ssl/your_domain_name/`。
2. **合并证书文件(针对Nginx)**:Nginx需要将 `certificate.crt` 和 `ca_bundle.crt` 合并为一个文件(例如 `zerossl_combined.crt`或`fullchain.pem`):
```bash
sudo bash -c 'cat /etc/ssl/your_domain_name/certificate.crt /etc/ssl/your_domain_name/ca_bundle.crt >> /etc/ssl/your_domain_name/zerossl_combined.crt'
```
3. **配置Nginx**:编辑Nginx的虚拟主机配置文件(通常在 `/etc/nginx/sites-available/` 或类似路径),修改SSL相关配置指向你的证书和私钥:
```nginx
server {
listen 443 ssl;
server_name your_domain.com www.your_domain.com;
ssl_certificate /etc/ssl/your_domain_name/zerossl_combined.crt;
ssl_certificate_key /etc/ssl/your_domain_name/private.key;
# 其他配置...
}
```
同时,建议配置HTTP到HTTPS的重定向:
```nginx
server {
listen 80;
server_name your_domain.com www.your_domain.com;
return 301 https://$server_name$request_uri;
}
```
4. **重启Nginx**:检查配置是否正确并重启Nginx使更改生效:
```bash
sudo nginx -t # 测试配置
sudo systemctl restart nginx # 重启Nginx
```
### 🔄 证书续期与管理
ZeroSSL的免费证书有效期为90天,到期前需要续期。
* **手动续期**:你可以登录ZeroSSL账户,在证书到期前(ZeroSSL会在到期前14天发邮件提醒你)重新进行验证和下载安装。
* **自动续期(推荐)**:使用支持ACME协议的工具(如**acme.sh**)可以自动化续期过程。
* **安装acme.sh**:
```bash
curl https://get.acme.sh | sh
source ~/.bashrc
```
* **设置ZeroSSL为默认CA**并配置EAB凭证(在ZeroSSL控制面板生成):
```bash
acme.sh --set-default-ca --server zerossl
export ZERO_EAB_KEY="你的_eab_key"
export ZERO_EAB_HMAC="你的_eab_hmac"
```
* **颁发证书**(例如使用DNS API自动验证):
```bash
export DP_Id="你的_DNS_API_ID"
export DP_Key="你的_DNS_API_Key"
acme.sh --issue --dns dns_dp -d your_domain.com -d *.your_domain.com
```
* **安装证书**并配置自动重载Web服务器:
```bash
acme.sh --install-cert -d your_domain.com \
--key-file /etc/ssl/your_domain.com/private.key \
--fullchain-file /etc/ssl/your_domain.com/fullchain.cer \
--reloadcmd "systemctl reload nginx"
```
acme.sh会自动添加cron任务每天检查证书是否需续期。
### 💎 主要注意事项
* **免费证书限制**:ZeroSSL的免费计划每个账户通常有**3个免费证书的限制**。
* **验证方式选择**:
* **DNS验证**:适合无法直接操作服务器但能管理DNS记录的情况,也是自动化(如acme.sh)的首选。
* **HTTP验证**:需要能操作Web服务器目录,上传验证文件。
* **邮箱验证**:相对简单,但需确保能收到指定管理员邮箱的邮件。
* **私钥安全**:私钥(`.key`文件)务必保密,切勿泄露。
* **证书链**:配置Web服务器时,确保使用合并后的完整证书链(如Nginx的`zerossl_combined.crt`),否则可能导致某些浏览器不信任。
* **IP证书**:ZeroSSL支持为纯IP地址申请SSL证书,这比较少见,验证时通常需选择HTTP文件上传方式。
希望这些详细的步骤能帮助你成功申请和安装ZeroSSL的免费SSL证书。如果你在过程中遇到任何问题,可以查阅ZeroSSL官方文档或帮助中心。
ZeroSSL 是一家提供免费SSL证书的服务商,其免费证书有效期为90天,适合个人博客、小型网站或测试环境使用。下面是在ZeroSSL官网申请免费SSL证书的步骤。
### 📌 ZeroSSL 免费SSL证书主要特点
在开始申请之前,我们先通过一个表格快速了解 ZeroSSL 免费证书的主要特点:
| 特性 | 说明 |
| :----------- | :----------------------------------------- |
| **证书类型** | 单域名、多域名、通配符(泛域名)、IP证书 |
| **有效期** | 90天 |
| **续期** | 支持免费续期,可手动或通过ACME自动化 |
| **验证方式** | DNS解析、HTTP文件上传、邮箱验证 |
| **自动续期** | 通过ACME工具(如acme.sh)支持 |
### 📝 在ZeroSSL官网申请免费SSL证书
如果你想通过ZeroSSL官网申请,主要步骤如下图所示:
```mermaid
flowchart TD
A[访问ZeroSSL官网并注册账号] --> B[创建新证书并填写域名]
B --> C[选择90天免费证书]
C --> D[选择验证方式]
D --> D1[DNS验证]
D --> D2[HTTP文件验证]
D --> D3[邮箱验证]
D1 --> E[完成域名所有权验证]
D2 --> E
D3 --> E
E --> F[下载证书文件]
F --> G[在服务器上安装证书]
```
下面是各环节的具体操作说明:
1. **注册ZeroSSL账号**:
* 访问 ZeroSSL 官网 ([https://zerossl.com](https://zerossl.com))。
* 点击“Get Free SSL”或“Sign Up”注册新账号,通常需要使用邮箱进行注册。
2. **创建新证书**:
* 登录后,在控制面板点击“**New Certificate**”。
* 输入你需要申请证书的**域名**。如果你想为纯IP地址申请SSL证书,也可以在此输入IP地址。
3. **选择证书类型**:
* 在证书类型页面,选择“**90-Day Certificate**”(90天证书),这是免费的选项。
4. **生成CSR(证书签名请求)**:
* 通常可以选择“**Auto-Generate CSR**”(自动生成CSR),让ZeroSSL为你处理。CSR包含了你的域名和组织信息(如所在地和国家)。
5. **选择验证方式**:
* 验证域名所有权是必须的步骤。ZeroSSL主要提供三种方式:
* **HTTP文件上传验证**:下载验证文件并上传到服务器指定目录,确保可通过HTTP访问。
* **DNS解析验证**:在域名DNS管理后台添加指定的TXT或CNAME记录。
* **邮箱验证**:选择域名管理员邮箱(如admin@, webmaster@等),接收验证邮件并点击链接或输入验证码完成验证。这是比较快速和简单的方法。
6. **完成验证并下载证书**:
* 验证通过后,状态会更新。点击“**Install Certificate**”即可下载证书文件。
* 证书通常以ZIP格式提供,包含以下文件:
* `certificate.crt`:域名证书
* `ca_bundle.crt`:中间证书链
* `private.key`:私钥(请务必安全保管)
### ⚙️ 在服务器上安装证书
下载证书后,需要将其安装到你的Web服务器上。以Nginx为例:
1. **上传证书文件**:将下载的证书文件(`certificate.crt`、`ca_bundle.crt` 和 `private.key`)上传到服务器上的一个目录,例如 `/etc/ssl/your_domain_name/`。
2. **合并证书文件(针对Nginx)**:Nginx需要将 `certificate.crt` 和 `ca_bundle.crt` 合并为一个文件(例如 `zerossl_combined.crt`或`fullchain.pem`):
```bash
sudo bash -c 'cat /etc/ssl/your_domain_name/certificate.crt /etc/ssl/your_domain_name/ca_bundle.crt >> /etc/ssl/your_domain_name/zerossl_combined.crt'
sudo bash -c 'cat /data/ssl_lesrec/certificate.crt /data/ssl_lesrec/ca_bundle.crt >> /data/ssl_lesrec/bbs.lesrec.cn.pem'
实测不能合并,会导致pem与key文件md5不同,只要把certificate.crt拷贝为bbs.lesrec.cn.pem即可
验证方法:
openssl rsa -noout -modulus -in /data/ssl_lesrec/bbs.lesrec.cn.key | openssl md5
openssl x509 -noout -modulus -in /data/ssl_lesrec/bbs.lesrec.cn.pem | openssl md5
```
3. **配置Nginx**:编辑Nginx的虚拟主机配置文件(通常在 `/etc/nginx/sites-available/` 或类似路径),修改SSL相关配置指向你的证书和私钥:
```nginx
server {
listen 443 ssl;
server_name your_domain.com www.your_domain.com;
ssl_certificate /etc/ssl/your_domain_name/zerossl_combined.crt;
ssl_certificate_key /etc/ssl/your_domain_name/private.key;
# 其他配置...
}
```
同时,建议配置HTTP到HTTPS的重定向:
```nginx
server {
listen 80;
server_name your_domain.com www.your_domain.com;
return 301 https://$server_name$request_uri;
}
```
4. **重启Nginx**:检查配置是否正确并重启Nginx使更改生效:
```bash
sudo nginx -t # 测试配置
sudo systemctl restart nginx # 重启Nginx
```
### 🔄 证书续期与管理
ZeroSSL的免费证书有效期为90天,到期前需要续期。
* **手动续期**:你可以登录ZeroSSL账户,在证书到期前(ZeroSSL会在到期前14天发邮件提醒你)重新进行验证和下载安装。
* **自动续期(推荐)**:使用支持ACME协议的工具(如**acme.sh**)可以自动化续期过程。
* **安装acme.sh**:
```bash
curl https://get.acme.sh | sh
source ~/.bashrc
```
* **设置ZeroSSL为默认CA**并配置EAB凭证(在ZeroSSL控制面板生成):
```bash
acme.sh --set-default-ca --server zerossl
export ZERO_EAB_KEY="你的_eab_key"
export ZERO_EAB_HMAC="你的_eab_hmac"
```
* **颁发证书**(例如使用DNS API自动验证):
```bash
export DP_Id="你的_DNS_API_ID"
export DP_Key="你的_DNS_API_Key"
acme.sh --issue --dns dns_dp -d your_domain.com -d *.your_domain.com
```
* **安装证书**并配置自动重载Web服务器:
```bash
acme.sh --install-cert -d your_domain.com \
--key-file /etc/ssl/your_domain.com/private.key \
--fullchain-file /etc/ssl/your_domain.com/fullchain.cer \
--reloadcmd "systemctl reload nginx"
```
acme.sh会自动添加cron任务每天检查证书是否需续期。
### 💎 主要注意事项
* **免费证书限制**:ZeroSSL的免费计划每个账户通常有**3个免费证书的限制**。
* **验证方式选择**:
* **DNS验证**:适合无法直接操作服务器但能管理DNS记录的情况,也是自动化(如acme.sh)的首选。
* **HTTP验证**:需要能操作Web服务器目录,上传验证文件。
* **邮箱验证**:相对简单,但需确保能收到指定管理员邮箱的邮件。
* **私钥安全**:私钥(`.key`文件)务必保密,切勿泄露。
* **证书链**:配置Web服务器时,确保使用合并后的完整证书链(如Nginx的`zerossl_combined.crt`),否则可能导致某些浏览器不信任。
* **IP证书**:ZeroSSL支持为纯IP地址申请SSL证书,这比较少见,验证时通常需选择HTTP文件上传方式。
希望这些详细的步骤能帮助你成功申请和安装ZeroSSL的免费SSL证书。如果你在过程中遇到任何问题,可以查阅ZeroSSL官方文档或帮助中心。
No Comments