阿里云提供免费的DV型SSL证书,有效期1年,适合个人网站和中小企业。这篇教程手把手教你在阿里云申请免费SSL证书并部署到服务器。
一、阿里云免费证书概述
| 项目 | 说明 |
|---|---|
| 证书类型 | DV(域名验证型),只验证域名所有权 |
| 颁发机构 | Digicert、GlobalSign等(阿里云合作CA) |
| 有效期 | 1年(到期需重新申请) |
| 支持域名数 | 单个域名(如example.com或www.example.com) |
| 浏览器信任 | 所有主流浏览器都信任 |
| 费用 | 免费(每个阿里云账号每年可申请20张免费证书) |
| 审核时间 | 几分钟到几小时(DNS验证较快) |
阿里云免费证书是单域名证书,不支持通配符(*.example.com)。如果需要保护多个子域名,需要为每个子域名单独申请,或者使用Let's Encrypt的通配符证书。
二、申请免费证书
- 登录阿里云控制台,搜索"SSL证书",进入SSL证书服务
或直接访问:https://yundun.console.aliyun.com/?p=cas - 左侧菜单 → "免费证书"(或"证书资源包" → "免费证书")
- 点击"立即购买"(免费证书0元,需要先购买额度)
- 在购买页面,证书类型选"DV单域名证书",数量选需要的数量(如1),时长1年
- 确认订单金额为0元,点击"立即购买"并完成支付(0元支付)
- 回到SSL证书控制台,点击"证书申请"
- 填写申请信息:
- 证书绑定域名:填写要保护的域名(如 example.com 或 www.example.com)
- 域名验证方式:选择"自动DNS验证"(推荐,如果域名在阿里云)或"手动DNS验证"
- 联系人:选择或新建联系人(姓名、手机、邮箱、地址)
- 所在地:选择省份和城市
- 密钥算法:RSA 2048(默认)
- CSR生成方式:选择"系统生成"(推荐,自动生成私钥)
- 点击"下一步"
- 确认信息,点击"提交审核"
- 如果是自动DNS验证,阿里云会自动添加TXT记录,等待CA机构验证(通常几分钟)
- 如果是手动DNS验证,需要到域名解析处添加指定的TXT记录
- 验证通过后,证书状态变为"已签发"
申请证书时填写的域名必须是你拥有的,且能完成DNS验证。如果域名不在阿里云,需要手动到域名注册商处添加TXT验证记录。验证记录通常几小时内有效,尽快完成验证。
三、下载证书文件
- 在SSL证书控制台,找到已签发的证书
- 点击右侧"下载"
- 选择服务器类型(Nginx、Apache、Tomcat、IIS等)
- 点击"下载",得到一个压缩包
- 解压压缩包,里面包含:
- 证书文件:域名.pem(或.crt),包含公钥证书
- 私钥文件:域名.key,包含私钥
- 链文件:部分格式包含中间证书链
- 重要:私钥文件(.key)要妥善保管,不要泄露,否则证书可能被冒用
四、部署到宝塔面板
如果使用宝塔面板,部署证书最简单。
- 登录宝塔面板 → "网站"
- 点击要部署证书的网站名称
- 切换到"SSL"选项卡
- 选择"其他证书"
- 用文本编辑器打开下载的.pem文件,复制全部内容,粘贴到"证书(PEM格式)"框
- 打开.key文件,复制全部内容,粘贴到"私钥(KEY)"框
- 点击"保存"
- 保存成功后,证书状态显示"已部署"
- 开启右上角的"强制HTTPS"开关
- 访问 https://你的域名,确认小锁图标出现
五、部署到Nginx
如果不使用宝塔,手动部署到Nginx:
- 将证书文件上传到服务器,建议放在 /etc/nginx/ssl/ 目录下:
mkdir -p /etc/nginx/ssl # 上传 example.com.pem 和 example.com.key 到该目录
- 设置私钥文件权限(只有root可读):
chmod 600 /etc/nginx/ssl/example.com.key
- 编辑Nginx配置文件(通常在 /etc/nginx/conf.d/ 或 /www/server/panel/vhost/nginx/):
server { listen 443 ssl http2; server_name example.com www.example.com; # SSL证书配置 ssl_certificate /etc/nginx/ssl/example.com.pem; ssl_certificate_key /etc/nginx/ssl/example.com.key; # SSL优化配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; # 网站根目录 root /www/wwwroot/example.com; index index.php index.html; # 其他配置... } - 添加HTTP到HTTPS的跳转:
server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; } - 测试Nginx配置:
nginx -t - 重载Nginx:
nginx -s reload或systemctl reload nginx - 访问 https://你的域名 验证
六、续期与FAQ
6.1 证书续期
阿里云免费证书有效期1年,到期前需要重新申请:
- 到期前1-2周,在SSL控制台重新申请免费证书
- 完成DNS验证,获取新证书
- 下载新证书,重新部署到服务器(替换旧证书文件)
- 重载Nginx或在宝塔中重新保存
- 验证新证书生效
阿里云会在证书到期前发送邮件和短信提醒,注意查收。也可以在日历中设置到期提醒,避免证书过期导致网站无法访问。
6.2 常见问题
Q:免费证书申请审核要多久?
A:使用自动DNS验证(域名在阿里云)通常几分钟到几小时内签发。手动DNS验证需要你添加TXT记录后等待CA验证,通常几小时内完成。如果超过24小时未签发,检查DNS记录是否正确。
Q:一个证书可以同时保护example.com和www.example.com吗?
A:阿里云免费单域名证书只能保护一个域名。如果要同时保护根域名和www,需要申请两张证书,或者申请时填写其中一个,另一个用301跳转。也可以使用Let's Encrypt证书,支持多域名。
Q:证书部署后网站还是显示HTTP怎么办?
A:①检查是否开启了强制HTTPS跳转;②清除浏览器缓存;③检查网站程序中是否有硬编码的HTTP链接(WordPress需要修改站点地址);④检查CDN(如Cloudflare)中是否开启了HTTPS。
Q:私钥文件丢失了怎么办?
A:私钥文件丢失无法找回,只能重新申请证书。申请时选择"系统生成CSR"会自动生成新的私钥,下载新证书后重新部署。所以一定要妥善保管私钥文件。
Q:阿里云免费证书和Let's Encrypt哪个好?
A:各有优势。阿里云免费证书有效期1年,不需要自动续期,但单域名、需要手动申请部署。Let's Encrypt有效期90天但可以自动续期,支持多域名和通配符,宝塔一键申请。用宝塔的话推荐Let's Encrypt,更方便。