本文将通过Nginx + SSL证书 实现配置HTTPS 域名的实操内容。
成功配置后可以通过https域名实现对后端接口的访问,比如小程序要求的https接口。
一、域名解析 (DNS)
你需要登录域名 huanyu.com 所在的管理后台(如阿里云、腾讯云等)。
- 添加记录:
- 主机记录:填写
apis(最终域名为 apis.huanyu.com) - 记录类型:选择
A - 记录值:填写你的服务器公网 IP 地址
- TTL:保持默认即可
- 主机记录:填写
- 等待 DNS 生效(通常几分钟到十几分钟)。
二、获取 SSL 证书
可以使用阿里云或腾讯云的免费证书服务,以阿里云为例
- 登录阿里云控制台,搜索并进入 SSL证书 服务。
- 购买或签发一张 免费版 DV SSL 证书。
- 绑定域名:在申请过程中,填写域名
apis.huanyu.com。 - 域名验证:按照提示完成 DNS 验证(通常添加一条 TXT 记录即可)。
- 下载证书:签发成功后,下载 Nginx 版本的证书包。
- 你会得到一个压缩包,里面有四个文件,其中需要的两个文件是:一个后缀为
.pem的公钥文件,一个后缀为.key的私钥文件。
- 你会得到一个压缩包,里面有四个文件,其中需要的两个文件是:一个后缀为
三、服务器环境配置
假设你的项目根目录为 /home/deploy,请按照以下结构整理文件:
- 创建目录结构:
bash
mkdir -p /home/deploy/nginx/conf.d
mkdir -p /home/deploy/nginx/ssl- 上传证书: 将第二步下载的两个证书文件上传到服务器的
/home/deploy/nginx/ssl目录下。
四、Nginx 配置
在 /home/deploy/nginx/conf.d 目录下创建文件 apis.conf,内容如下:
nginx
# apis.huanyu.com 的 HTTPS 配置
server {
# 监听 80 端口,强制跳转 HTTPS
listen 80;
server_name apis.huanyu.com;
return 301 https://$server_name$request_uri;
}
server {
# 监听 443 端口,开启 SSL
listen 443 ssl;
server_name apis.huanyu.com;
# SSL 证书路径 (注意:这里是容器内部的路径)
ssl_certificate /home/deploy/nginx/ssl/apis.huanyu.com.pem;
ssl_certificate_key /home/deploy/nginx/ssl/apis.huanyu.com.key;
# 推荐的安全协议
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
# 反向代理配置
location / {
# 将请求转发给 Java 服务
proxy_pass http://my-server:8081;
# 透传必要的请求头,确保后端能获取到真实 IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}