# 阿里云 SSL 证书申请与部署：免费证书、域名验证、下载安装

> 在阿里云数字证书管理服务申请免费个人测试证书或付费证书：DNS/文件验证、下载 Nginx 格式证书安装到服务器，或一键部署到 CDN、SLB 等云产品。

Source: https://ssl.sh/zh/guides/aliyun-ssl-certificate/
Last updated: 2026-11-10

阿里云的免费 SSL 证书（个人测试证书）在数字证书管理服务里申请，通过 DNS 或文件验证后签发。签发的证书可以下载安装到自己的 Nginx 服务器，也可以一键部署到 CDN、负载均衡等阿里云产品，但到期不会自动续期。

产品名称、免费额度和有效期以截至 2026 年 11 月的阿里云控制台为准。

## 前提条件

申请证书需要已实名的阿里云账号、一个域名，以及 DNS 验证或文件验证其中一种条件。

- 阿里云账号（已实名认证），能访问“数字证书管理服务”。
- 要申请证书的域名，例如 `www.example.com`；部署在中国内地服务器或 CDN 上的，域名需已备案。
- DNS 验证：能修改域名解析（在阿里云解析的可以自动验证）。
- 文件验证：网站能通过 HTTP/HTTPS 访问，可以在网站根目录下放文件。

## 第一步：创建证书申请

在阿里云控制台打开 **数字证书管理服务 → SSL 证书管理**，选择个人测试证书（原免费证书），创建证书后点“证书申请”并填写：

- **域名**：填 `www.example.com`（个人测试证书只能填一个域名）。
- **联系人和所在地**：按要求填写。
- **CSR 生成方式**：选“系统生成”步骤最少；对私钥保管有要求的选“手动填写”，用 [OpenSSL 生成 CSR](https://ssl.sh/zh/guides/generate-csr-openssl/) 后粘贴。

## 第二步：完成域名验证

阿里云提供三种域名验证方式，按页面提示选一种：

- **自动 DNS 验证**：域名在阿里云云解析时，控制台自动添加验证记录。
- **手动 DNS 验证**：在域名解析里添加控制台给出的 TXT 记录（主机记录和记录值以页面为准）。
- **文件验证**：下载验证文件，放到网站的 `/.well-known/pki-validation/` 目录下，保证浏览器能打开这个文件。

点击 **验证**，通过后提交审核，签发通常需要几分钟到几小时。查看 TXT 记录是否生效：

```bash
dig +short TXT _dnsauth.www.example.com
```

记录名以控制台给出的为准。

## 第三步：下载并安装到服务器

签发后在证书列表点 **下载**，服务器类型选 Nginx，得到一个压缩包，包含 `.pem`（证书链）和 `.key`（私钥）文件。上传到服务器后：

```bash
sudo mkdir -p /etc/nginx/ssl
sudo unzip www.example.com_nginx.zip -d /etc/nginx/ssl/
sudo chmod 600 /etc/nginx/ssl/*.key
ls /etc/nginx/ssl/
```

压缩包和文件名以实际下载为准。在 Nginx 配置里引用：

```nginx
server {
    listen 443 ssl;
    server_name www.example.com;
    ssl_certificate     /etc/nginx/ssl/www.example.com.pem;
    ssl_certificate_key /etc/nginx/ssl/www.example.com.key;
    ssl_protocols       TLSv1.2 TLSv1.3;
}
```

```bash
sudo nginx -t && sudo systemctl reload nginx
```

宝塔面板用户直接把 `.key` 和 `.pem` 内容粘贴到站点 SSL 页面即可，见 [宝塔面板配置 SSL 证书](https://ssl.sh/zh/guides/bt-panel-ssl/)。

## 第四步：部署到阿里云产品（可选）

证书用于 CDN、负载均衡（SLB/ALB）、OSS、WAF 等阿里云产品时，不用下载：在证书列表点 **部署**，选择云产品和对应资源（如 CDN 加速域名），提交即可。CDN 的 HTTPS 细节见 [阿里云 CDN 配置 HTTPS](https://ssl.sh/zh/guides/aliyun-cdn-https/)。

## 验证

安装正确时，证书链完整，到期时间与控制台一致。用 [SSL 证书检查](https://ssl.sh/zh/tools/ssl-checker/) 检查，或在终端运行：

```bash
curl ssl.sh/www.example.com
```

私钥和证书是否配对可以用 [私钥匹配检查](https://ssl.sh/zh/tools/key-matcher/) 确认。

## 自动续期

免费的个人测试证书不会自动续期：到期前需要重新申请、验证、下载并替换文件，或重新部署到云产品。2026 年 3 月 15 日起公网证书最长 200 天，2027 年 3 月 15 日起 100 天，2029 年 3 月 15 日起 47 天，这种手动流程会越来越频繁。建议：

- 自己的服务器改用 [acme.sh + 阿里云 DNS](https://ssl.sh/zh/guides/acme-sh-dnspod-aliyun-dns/) 自动签发和续期 Let's Encrypt 证书。
- 云产品优先用其托管/自动部署能力；需要用自有证书时，在续期钩子里调用 API 推送（例如 acme.sh 的 `ali_cdn` 部署钩子）。
- 把域名加到 [ssl.sh 监控](https://ssl.sh/zh/monitor/)（开发中），到期前提醒。

## 常见问题排查

- **验证一直不通过**：TXT 记录填错（主机记录多带了域名后缀）或未生效；文件验证的路径不对或被跳转、防盗链拦截。
- **CAA 记录阻止签发**：域名设置了 CAA 但没有允许签发这张证书的 CA，见 [CAA 记录阻止签发](https://ssl.sh/zh/errors/caa-record-prevents-issuance/)。
- **Nginx 报 key values mismatch**：证书和私钥不是同一次申请的，见 [nginx key values mismatch](https://ssl.sh/zh/errors/nginx-key-values-mismatch/)。
- **手机或小程序提示证书不可信**：用了只含站点证书的文件，见 [缺少中间证书](https://ssl.sh/zh/errors/missing-intermediate-certificate/)。
- **浏览器提示证书过期**：到期没有更换，见 [NET::ERR_CERT_DATE_INVALID](https://ssl.sh/zh/errors/net-err-cert-date-invalid/)。
