在轻量应用服务器上如何配置域名和SSL证书?

在轻量应用服务器(Lightweight Application Server)上配置域名和 SSL 证书,核心逻辑与标准云服务器(CVM/ECS)是一致的,主要区别在于控制台的操作入口更简化。整个流程可以拆解为三个关键阶段:域名解析Web 服务安装与配置SSL 证书部署

以下以最常见的 Nginx + Let’s Encrypt (免费证书)阿里云/腾讯云自带证书管理 为例,提供一套通用且稳定的操作方案。假设你的操作系统为 Ubuntu 20.04/22.04 或 CentOS 7/8。


第一阶段:前置准备

  1. 域名备案

    • 如果你使用的是国内云厂商(如阿里云、腾讯云、华为云等)的轻量应用服务器,必须完成 ICP 备案才能绑定域名并开放 80/443 端口。未备案域名无法通过 HTTP/HTTPS 访问。
    • 海外服务器则无需备案,但需注意目标用户所在地的合规要求。
  2. 购买/获取 SSL 证书

    • 免费方案:推荐使用 Let’s Encrypt,通过 certbot 工具自动续期,适合个人站长和小企业。
    • 付费方案:可在云厂商控制台直接购买 DV 证书,通常支持一键部署到 Nginx/Apache。
  3. 确保 Web 服务已运行

    • 轻量服务器通常预装或需手动安装 Nginx/Apache。确保你能通过 IP 地址访问默认页面(即 http://<your-ip> 能显示测试页)。

第二阶段:域名解析(DNS 配置)

无论使用哪种证书,第一步都是让域名指向你的服务器 IP。

  1. 登录云厂商的 DNS 控制台(如阿里云 DNS、腾讯云 DNSPod)。
  2. 添加一条 A 记录
    • 主机记录@ (代表主域名,如 example.com)或 www (代表 www.example.com
    • 记录值:你的轻量服务器公网 IP 地址
    • TTL:推荐 600 秒或默认值
  3. 等待解析生效(全球生效可能需要几分钟到几小时),可通过 ping yourdomain.com 验证是否指向正确 IP。

第三阶段:安装 Web 服务器与基础配置

Nginx 为例(轻量服务器最常用):

1. 安装 Nginx

# Ubuntu/Debian
sudo apt update
sudo apt install nginx -y

# CentOS
sudo yum install epel-release -y
sudo yum install nginx -y

启动并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

2. 创建网站目录与测试文件

sudo mkdir -p /var/www/html/yourdomain.com
echo "<h1>Hello from Your Domain</h1>" | sudo tee /var/www/html/yourdomain.com/index.html

3. 配置 Nginx 虚拟主机(HTTP 部分)

编辑配置文件(路径可能因系统而异,Ubuntu 通常在 /etc/nginx/sites-available/,CentOS 在 /etc/nginx/conf.d/):

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    root /var/www/html/yourdomain.com;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

重载 Nginx:

sudo nginx -t  # 检查语法
sudo systemctl reload nginx

此时,访问 http://yourdomain.com 应能看到测试页面。


第四阶段:申请并部署 SSL 证书

方案 A:使用 Certbot 自动获取 Let’s Encrypt 证书(推荐,免费)

这是目前最主流的做法,支持自动续期。

  1. 安装 Certbot 和 Nginx 插件:

    # Ubuntu
    sudo apt install certbot python3-certbot-nginx -y
    
    # CentOS
    sudo yum install certbot python3-certbot-nginx -y
  2. 运行 Certbot 命令(它会自动修改 Nginx 配置并重定向 HTTPS):

    sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
  3. 按提示操作:

    • 输入邮箱用于紧急通知。
    • 同意条款。
    • 选择是否重定向所有 HTTP 请求到 HTTPS(推荐选 2,强制 HTTPS)。
    • Certbot 会自动下载证书、生成密钥,并更新 Nginx 配置。
  4. 验证:
    浏览器访问 https://yourdomain.com,查看锁形图标是否正常。

  5. 自动续期测试

    sudo certbot renew --dry-run

    Certbot 会通过 cron 或 systemd timer 自动处理续期,无需人工干预。

方案 B:使用云厂商控制台上传证书(适用于已有证书)

如果你已在云厂商购买证书,或使用其他 CA 签发的证书:

  1. 登录云厂商控制台,进入 SSL 证书服务
  2. 下载证书包,包含 .crt(公钥)和 .key(私钥)文件。
  3. 将文件上传至服务器指定目录,例如:
    sudo mkdir -p /etc/nginx/ssl
    sudo cp yourdomain.crt /etc/nginx/ssl/
    sudo cp yourdomain.key /etc/nginx/ssl/
  4. 修改 Nginx 配置,启用 HTTPS:

    server {
        listen 443 ssl;
        server_name yourdomain.com www.yourdomain.com;
    
        ssl_certificate /etc/nginx/ssl/yourdomain.crt;
        ssl_certificate_key /etc/nginx/ssl/yourdomain.key;
    
        # 推荐的安全参数
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
    
        root /var/www/html/yourdomain.com;
        index index.html index.htm;
    
        location / {
            try_files $uri $uri/ =404;
        }
    }
    
    # 可选:重定向 HTTP 到 HTTPS
    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
        return 301 https://$host$request_uri;
    }
  5. 重载 Nginx:
    sudo nginx -t
    sudo systemctl reload nginx

第五阶段:防火墙与安全组配置

轻量应用服务器有独立的“防火墙”和云厂商的“安全组”,两者都需要放行。

  1. 服务器内部防火墙(如 UFW 或 firewalld):

    # Ubuntu (UFW)
    sudo ufw allow 'Nginx Full'  # 同时放行 80 和 443
    sudo ufw enable
    sudo ufw status
    
    # CentOS (firewalld)
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload
  2. 云厂商安全组/防火墙规则

    • 登录轻量应用服务器控制台。
    • 找到“防火墙”或“安全组”设置。
    • 添加入方向规则:
      • 协议:TCP
      • 端口:80, 443
      • 授权对象:0.0.0.0/0
    • 保存并生效。

⚠️ 注意:很多新手只开了安全组,忘了关服务器内部的 UFW/firewalld,导致网络无法访问。务必两者都检查。


常见问题排查

问题现象 可能原因 解决方案
访问 HTTPS 报“不安全”或证书无效 证书未正确加载或过期 检查 Nginx 中 ssl_certificate 路径是否正确;运行 certbot renew
403 Forbidden 权限问题 确保 /var/www/html/... 目录及文件对 Nginx 用户(www-data/nginx)可读:
sudo chown -R www-data:www-data /var/www/html/yourdomain.com
连接超时 防火墙未放行 443 端口 检查云厂商安全组和服务器内部防火墙是否允许 TCP 443
HTTP 不跳转 HTTPS Nginx 配置中缺少 return 301 在 80 端口的 server 块中添加 return 301 https://$host$request_uri;

最佳实践建议

  1. 强制 HTTPS:始终配置 HTTP → HTTPS 的 301 重定向,提升 SEO 和安全性。
  2. HSTS 头部:在 Nginx 中添加 Strict-Transport-Security 头,防止中间人攻击降级。
  3. 定期备份:虽然 Let’s Encrypt 证书有效期 90 天,但配置文件和网站数据更重要,建议定期备份 /etc/nginx/ 和网站根目录。
  4. 监控证书到期:Certbot 会自动续期,但可设置邮件告警或使用第三方工具监控证书有效期。

通过以上步骤,你可以在轻量应用服务器上完成从域名解析到 HTTPS 加密的全流程配置。整个过程自动化程度高,尤其使用 Certbot 后,几乎无需手动维护证书生命周期。

未经允许不得转载:CLOUD云枢 » 在轻量应用服务器上如何配置域名和SSL证书?