Nginx 启用 HTTPS:阿里云免费 SSL 证书详细图文教程(新手0.5小时可完成)

一、引言

这篇文章记录了我在阿里云申请 SSL 证书并在 Nginx 上配置 HTTPS 的完整过程。

如果你的网站还在使用 http://,那用户在浏览器里可能会看到"不安全"的提示,甚至会被直接拦截。启用 HTTPS 不仅能加密数据传输、提升安全性,还能在搜索引擎排名和用户信任度上加分。

从阿里云申请证书,到把它部署到服务器,再到修改 Nginx 配置实现全站 HTTPS,整个流程并不复杂,但细节不少。

本文会一步步带你完成:创建并下载适配 Nginx 的证书、上传到服务器、设置文件权限、修改 Nginx 配置并测试访问,照着做就能一次成功。

二、在阿里云申请 SSL 证书

1. 登录阿里云控制台

在搜索框输入「数字证书管理服务」或直接进入 阿里云 SSL 证书管理

2. 创建证书

  • 点击 "个人测试证书" 或选择已购买的证书。
  • 填写需要绑定的域名(例如 your-domain.com),根据需求选择单域名或泛域名证书。
  • 选择验证方式(推荐 DNS 验证,简单快捷)。

3. 验证域名所有权

  • 如果选择 DNS 验证,会提供一条 CNAME 记录。
  • 在你的域名解析管理中添加这条记录,并等待生效。
  • 阿里云会自动检测并完成验证。

4. 等待签发

  • 验证通过后,证书会进入 已签发 状态。
  • 这时我们就可以进行下载和部署了。

三、下载 SSL 证书(Nginx 类型)

1.进入证书管理页面

在「数字证书管理服务」中,在证书管理中找到SSL证书管理。

2. 选择下载

点击证书右侧的 "下载" 按钮。

本篇博客以Nginx为例。下载下来的证书会包含适配Nginx的.pem和.key文件,无需再进行额外的格式转换。

bash 复制代码
your-domain.com.pem    # 公钥证书
your-domain.com.key    # 私钥文件

这两个文件是我们后续配置 Nginx 所必需的。

四、上传证书到服务器并设置权限

1. 创建存放证书的目录

建议将证书统一放到 /etc/nginx/ssl/ 下,方便管理:

bash 复制代码
sudo mkdir -p /etc/nginx/ssl

也可以使用FileZilla工具直接创建文件夹。

2. 上传证书文件

使用 scp、SFTP 或其他工具,将 .pem 和 .key 文件上传到刚创建的目录,例如:

bash 复制代码
scp your-domain.com.pem root@服务器IP:/etc/nginx/ssl/
scp your-domain.com.key root@服务器IP:/etc/nginx/ssl/

或者也可以直接使用FileZilla工具上传:

3. 设置文件权限

出于安全考虑,公钥文件(.pem)可以对所有人可读,而私钥文件(.key)建议仅限 root 可读:

bash 复制代码
sudo chmod 644 /etc/nginx/ssl/your-domain.com.pem
sudo chmod 600 /etc/nginx/ssl/your-domain.com.key

这样可以避免服务器上其他用户读取到你的私钥文件。

4. 确认文件位置

最终目录结构应如下:

bash 复制代码
/etc/nginx/ssl/
├── your-domain.com.pem
└── your-domain.com.key

五、修改 Nginx 配置并启用 HTTPS

1. 进入 Nginx 配置目录

般在以下路径之一:

bash 复制代码
/etc/nginx/nginx.conf
/etc/nginx/conf.d/

建议在 /etc/nginx/conf.d/ 下新建一个配置文件,例如:

bash 复制代码
sudo nano /etc/nginx/conf.d/drama.conf

如果没有,可以改用:

bash 复制代码
sudo vim /etc/nginx/conf.d/drama.conf

2. 写入配置

将下面的内容替换为你的域名和证书路径:

bash 复制代码
# 80 端口强制跳转到 HTTPS
server {
    listen 80;
    server_name your-domain.com;
    return 301 https://$host$request_uri;
}

# 443 端口启用 HTTPS
server {
    listen 443 ssl;
    server_name your-domain.com;

    # SSL 证书配置
    ssl_certificate /etc/nginx/ssl/your-domain.com.pem;
    ssl_certificate_key /etc/nginx/ssl/your-domain.com.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    # 反向代理到 Spring Boot
    location / {
        proxy_pass http://127.0.0.1:8080; # 你的 Spring Boot 服务端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

3. 检查配置是否正确

bash 复制代码
sudo nginx -t

如果输出:

bash 复制代码
syntax is ok
test is successful

说明语法没有问题。

4. 重载 Nginx

bash 复制代码
sudo systemctl reload nginx

这样新的 HTTPS 配置就会立即生效。

结语

到这里,我们已经完成了从 阿里云申请 SSL 证书在 Nginx 上配置 HTTPS 的完整流程。

网站启用 HTTPS 后,不仅能加密用户与服务器之间的通信,还能提升搜索引擎友好度和用户信任度。

如果你是第一次部署 HTTPS,建议在配置完成后,用浏览器和在线工具(如 SSL Labs)进行测试,确保证书链完整、加密套件安全。

后续如果证书接近到期,阿里云会提前提醒你续期;如果是托管证书,还能自动续签,几乎不用额外维护。

配置完成后,你的网站地址就可以自豪地以 https:// 开头了。