Skip to content

本文将通过Nginx + SSL证书 实现配置HTTPS 域名的实操内容。

成功配置后可以通过https域名实现对后端接口的访问,比如小程序要求的https接口。

一、域名解析 (DNS)

你需要登录域名 huanyu.com 所在的管理后台(如阿里云、腾讯云等)。

  1. 添加记录
    • 主机记录:填写 apis (最终域名为 apis.huanyu.com)
    • 记录类型:选择 A
    • 记录值:填写你的服务器公网 IP 地址
    • TTL:保持默认即可
  2. 等待 DNS 生效(通常几分钟到十几分钟)。

二、获取 SSL 证书

可以使用阿里云或腾讯云的免费证书服务,以阿里云为例

  1. 登录阿里云控制台,搜索并进入 SSL证书 服务。
  2. 购买或签发一张 免费版 DV SSL 证书
  3. 绑定域名:在申请过程中,填写域名 apis.huanyu.com
  4. 域名验证:按照提示完成 DNS 验证(通常添加一条 TXT 记录即可)。
  5. 下载证书:签发成功后,下载 Nginx 版本的证书包。
    • 你会得到一个压缩包,里面有四个文件,其中需要的两个文件是:一个后缀为 .pem 的公钥文件,一个后缀为 .key 的私钥文件。

三、服务器环境配置

假设你的项目根目录为 /home/deploy,请按照以下结构整理文件:

  1. 创建目录结构
bash
    mkdir -p /home/deploy/nginx/conf.d
    mkdir -p /home/deploy/nginx/ssl
  1. 上传证书: 将第二步下载的两个证书文件上传到服务器的 /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;
    }
}