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文件,无需再进行额外的格式转换。
your-domain.com.pem # 公钥证书
your-domain.com.key # 私钥文件
这两个文件是我们后续配置 Nginx 所必需的。
四、上传证书到服务器并设置权限
1. 创建存放证书的目录
建议将证书统一放到 /etc/nginx/ssl/ 下,方便管理:
sudo mkdir -p /etc/nginx/ssl
也可以使用FileZilla工具直接创建文件夹。
2. 上传证书文件
使用 scp、SFTP 或其他工具,将 .pem 和 .key 文件上传到刚创建的目录,例如:
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 可读:
sudo chmod 644 /etc/nginx/ssl/your-domain.com.pem
sudo chmod 600 /etc/nginx/ssl/your-domain.com.key
这样可以避免服务器上其他用户读取到你的私钥文件。
4. 确认文件位置
最终目录结构应如下:
/etc/nginx/ssl/
├── your-domain.com.pem
└── your-domain.com.key
五、修改 Nginx 配置并启用 HTTPS
1. 进入 Nginx 配置目录
般在以下路径之一:
/etc/nginx/nginx.conf
/etc/nginx/conf.d/
建议在 /etc/nginx/conf.d/ 下新建一个配置文件,例如:
sudo nano /etc/nginx/conf.d/drama.conf
如果没有,可以改用:
sudo vim /etc/nginx/conf.d/drama.conf
2. 写入配置
将下面的内容替换为你的域名和证书路径:
# 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 Bootlocation / {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. 检查配置是否正确
sudo nginx -t
如果输出:
syntax is ok
test is successful
说明语法没有问题。
4. 重载 Nginx
sudo systemctl reload nginx
这样新的 HTTPS 配置就会立即生效。
结语
到这里,我们已经完成了从 阿里云申请 SSL 证书 到 在 Nginx 上配置 HTTPS 的完整流程。
网站启用 HTTPS 后,不仅能加密用户与服务器之间的通信,还能提升搜索引擎友好度和用户信任度。
如果你是第一次部署 HTTPS,建议在配置完成后,用浏览器和在线工具(如 SSL Labs)进行测试,确保证书链完整、加密套件安全。
后续如果证书接近到期,阿里云会提前提醒你续期;如果是托管证书,还能自动续签,几乎不用额外维护。
配置完成后,你的网站地址就可以自豪地以 https:// 开头了。