阿里云服务器申请SSL证书全流程
阿里云服务器申请SSL证书全流程

阿里云服务器申请SSL证书全流程

前置条件:

  1. 阿里云账号(需实名认证)
  2. 已在阿里云注册域名或从其他服务商转入
  3. ECS云服务器(Ubuntu/CentOS系统)

详细操作步骤(包含所有控制台截图位置):

步骤1:登录阿里云控制台

  1. 访问 阿里云官网
  2. 点击右上角 ​​控制台​​ 按钮登录

步骤2:申请免费SSL证书

# 控制台操作路径:
1. 产品搜索框输入"SSL证书" → 进入服务
2. 左侧菜单:SSL证书 → 免费证书
3. 点击「创建证书」(首次需要免费领取20个证书额度)
  1. 证书申请表单:
    • ​证书绑定域名​​:填写你的域名(如 yourdomain.com
    • ​域名验证方式​​:选择 ​​DNS验证​​(推荐)
    • ​CSR生成方式​​:选择 ​​系统生成​
  2. 点击「下一步」→ 提交审核(自动审核约1分钟)

步骤3:DNS验证配置

  1. 申请提交后回到「免费证书」列表
  2. 找到新申请证书 → 点击「证书申请」
  3. 复制 ​​主机记录​​ 和 ​​记录值​​:记录类型:TXT 主机记录:_dnsauth.example.com 记录值:20240721123456ABCDEF
  4. 配置域名解析:# 控制台路径: 1. 进入「云解析DNS」服务 2. 选择域名 → 添加记录 3. 填写复制的TXT记录信息 → 确认
  5. 等待传播(通常1-5分钟),点击「验证」

步骤4:下载证书文件

  1. 验证通过后,在「免费证书」列表中找到证书
  2. 点击 ​​下载​​ → 选择 ​​Nginx​
  3. 保存压缩包(包含两个文件):
    • .pem:证书文件
    • .key:私钥文件

步骤5:上传证书到服务器

# 使用scp上传(本地终端执行)
scp /本地路径/cert.pem root@服务器IP:/etc/nginx/ssl/
scp /本地路径/cert.key root@服务器IP:/etc/nginx/ssl/

# 或者使用阿里云控制台「文件管理」上传:
1. 进入ECS实例 → 左侧菜单:实例与镜像 → 实例
2. 点击实例ID → 右上角「远程连接」→ VNC登录
3. 右侧菜单 → 文件管理 → 上传文件

步骤6:服务器端目录准备

# 1. 连接到服务器
ssh root@your_server_ip

# 2. 创建SSL证书目录
sudo mkdir -p /etc/nginx/ssl
sudo chmod 700 /etc/nginx/ssl

# 3. 移动证书文件(如果通过文件管理上传)
sudo mv /root/cert.pem /etc/nginx/ssl/
sudo mv /root/cert.key /etc/nginx/ssl/

# 4. 设置安全权限
sudo chown root:root /etc/nginx/ssl/*
sudo chmod 600 /etc/nginx/ssl/cert.key

步骤7:配置Nginx(含安全增强配置)

sudo nano /etc/nginx/conf.d/yourdomain.conf

写入以下配置:

# HTTP强制重定向到HTTPS
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    return 301 https://$server_name$request_uri;
}

# HTTPS主配置
server {
    listen 443 ssl http2;
    server_name yourdomain.com www.yourdomain.com;
    
    # SSL证书配置
    ssl_certificate /etc/nginx/ssl/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/cert.key;
    
    # 阿里云免费证书需要添加证书链
    ssl_trusted_certificate /etc/nginx/ssl/cert.pem;
    
    # 安全增强配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;
    
    # 启用OCSP装订(提高HTTPS性能)
    ssl_stapling on;
    ssl_stapling_verify on;
    
    # 强加密设置
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    
    # 网站根目录
    root /var/www/html;
    index index.html;
    
    location / {
        try_files $uri $uri/ =404;
    }
    
    # 禁止访问.ht文件
    location ~ /\.ht {
        deny all;
    }
}

步骤8:应用配置并测试

# 1. 测试配置文件语法
sudo nginx -t
# 应显示: syntax is OK / test is successful

# 2. 重载Nginx配置
sudo systemctl reload nginx

# 3. 检查端口监听
sudo netstat -tulpn | grep nginx
# 应看到443端口监听

# 4. 测试HTTPS访问
curl -I https://yourdomain.com
# 应返回200 OK

步骤9:安全组配置(关键!)

# 阿里云控制台操作:
1. ECS控制台 → 安全组 → 选择实例使用的安全组
2. 配置规则 → 快速添加规则:
   - 选中:HTTP(80)、HTTPS(443)
   - 授权对象:0.0.0.0/0
3. 保存规则

步骤10:证书自动续期方案

由于阿里云免费证书有效期1年,需要手动续期。以下是半自动方案:

# 续期操作流程:
1. 证书过期前30天登录阿里云控制台
2. 进入SSL证书 → 免费证书 → 点击「续费」
3. 重新进行DNS验证(操作同步骤3)
4. 下载新证书 → 替换服务器上的旧文件
5. 重载Nginx:sudo systemctl reload nginx

故障排除:

# 1. 报错:SSL证书链不完整
sudo nano /etc/nginx/ssl/cert.pem
# 在证书文件末尾添加中级证书(阿里云下载包中有)
# 格式:
-----BEGIN CERTIFICATE-----
[中级证书内容]
-----END CERTIFICATE-----

# 2. 错误:THE_REDIRECT_LOOP(重定向循环)
检查Nginx配置是否同时存在:
- HTTP强制跳转HTTPS
- HTTPS又跳转其他URL

# 3. 阿里云安全组未开放443端口
通过控制台「安全组检测」功能验证:
ECS实例 → 安全组 → 入方向规则需包含:
协议:HTTPS | 端口:443 | 源:0.0.0.0/0

最佳实践建议:

  1. ​证书管理​​:使用阿里云「证书托管」功能集中管理
  2. ​密钥安全​​:每年更换私钥(重新生成CSR申请证书)
  3. ​监控提醒​​:在证书服务中开启「到期提醒」
  4. ​备份策略​​:将/etc/nginx/ssl目录备份到OSS对象存储

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注