Springboot 局域网部署https解除安全警告

在 Windows 环境下,使用 Windows 版 Nginx 部署 HTTPS,并让浏览器访问局域网地址(如 https://192.168.1.100)不显示安全警告,你需要:

✅ 创建一个受信任的 HTTPS 证书(自签名 + 根 CA)

✅ 配置 Windows 版 Nginx 使用该证书

✅ 将根证书安装到 Windows 系统信任列表(关键!否则浏览器会警告)

完整步骤(Windows 环境)

🧰 准备工具
1、OpenSSL for Windows(用于生成证书)

下载:https://slproweb.com/products/Win32OpenSSL.html

推荐下载 Win64 OpenSSL v3.x Light(绿色版即可)

安装后将 C:\Program Files\OpenSSL-Win64\bin 加入系统 PATH

2、Nginx for Windows

下载:http://nginx.org/en/download.html

解压到任意目录,如:C:\nginx

步骤一:生成私有根证书(Root CA)

打开 CMD 或 PowerShell(管理员权限),执行:

bash 复制代码
:: 1. 生成根私钥
openssl genrsa -out rootCA.key 2048

:: 2. 生成根证书(有效期 10 年)
openssl req -x509 -new -nodes -key rootCA.key ^
  -sha256 -days 3650 ^
  -out rootCA.crt ^
  -subj "/C=CN/ST=Local/L=Local/O=MyOrg/CN=My Private CA"

会在Windows用户目录下生成文件:rootCA.keyrootCA.crt

步骤二:为 Nginx 生成服务器证书

1. 创建配置文件 server.csr.cnf

在Windows用户目录(如 C:\Users\用户名)创建文件:server.csr.cnf,内容如下:

bash 复制代码
[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
req_extensions = v3_req

[dn]
C=CN
ST=Local
L=Local
O=MyOrg
OU=Dev
CN=192.168.1.100

[v3_req]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[alt_names]
IP.1 = 192.168.1.100
IP.2 = 192.168.1.101
DNS.1 = web.local
DNS.2 = localhost

修改 IP.1 为你本机的局域网 IP(如 192.168.1.100)

2. 生成服务器证书

bash 复制代码
:: 生成服务器私钥
openssl genrsa -out server.key 2048

:: 生成证书请求
openssl req -new -key server.key -out server.csr -config server.csr.cnf

:: 用根 CA 签发服务器证书
openssl x509 -req -in server.csr ^
  -CA rootCA.crt -CAkey rootCA.key ^
  -CAcreateserial ^
  -out server.crt ^
  -days 1825 ^
  -sha256 ^
  -extfile server.csr.cnf ^
  -extensions v3_req

会在Windows用户目录下生成文件:server.crt 和 server.key

步骤三:配置 Nginx 使用 HTTPS

1. 将证书复制到 Nginx 配置目录

将以下文件放入 C:\nginx\conf\ssl(手动创建 ssl 文件夹):

server.crt

server.key

2. 修改 C:\nginx\conf\nginx.conf

找到 server 块,修改或替换为:

bash 复制代码
server {
    listen       443 ssl;
    server_name  192.168.1.100;

    ssl_certificate      conf/ssl/server.crt;
    ssl_certificate_key  conf/ssl/server.key;

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

    location / {
        root   html;
        index  index.html index.htm;
    }
}

# 可选:HTTP 自动跳转 HTTPS
server {
    listen       80;
    server_name  192.168.1.100;
    return       301 https://$host$request_uri;
}

server_name 改为你的局域网 IP

步骤四:安装根证书到 Windows 信任列表(关键!)

这是让浏览器不报警告的核心!

打开 文件资源管理器,找到 rootCA.crt

双击打开 → "安装证书"

选择"本地计算机"(需要管理员权限)

存放位置:"受信任的根证书颁发机构"

点击完成

安装成功后,所有基于 Windows 的浏览器(Chrome、Edge、Firefox*)都将信任你签发的证书。

Firefox 使用自己的证书库,需额外导入:打开 Firefox → 设置 → 隐私与安全 → 证书 → 查看证书 → 机构 → 导入 rootCA.crt

步骤五:启动 Nginx

在 C:\nginx 目录下操作:

bash 复制代码
:: 测试配置是否正确
nginx.exe -t

:: 启动 Nginx
start nginx

:: (可选)重启
nginx.exe -s reload

:: (可选)停止
nginx.exe -s quit

验证效果

在局域网任意设备浏览器访问:

应该看到:

地址栏绿色锁图标

无"您的连接不是私密连接"警告

证书由 My Private CA 签发

相关推荐
DsirNg1 小时前
一文讲清网络协议:从打开网页到理解 HTTP、HTTPS 与 TLS
http·https·dns·网络基础·入门教程·tls·web 安全
奈斯先生Vector2 小时前
2026 AIGC API 网关韧性评测:为什么 HTTP 200 不等于有效交付
网络协议·http·aigc
@CLoudbays_Martin112 小时前
Linux 服务器如何查看是否被植入后门?
linux·服务器·网络·安全·github·ssl
拾光Ծ3 小时前
【Linux网络】深入理解网络层:从IP协议格式,子网划分到NAT与路由机制
linux·网络·网络协议·tcp/ip·计算机网络
网易易盾11 小时前
AI互动产品安全合规体系架构:制度/技术/运营/证据四层落地
人工智能·安全·aigc·内容安全
数据知道13 小时前
宽字节注入、二次注入、堆叠注入:高级 SQLi 专题
linux·运维·安全·网络安全
全麦面包 time展天15 小时前
瀚海拾贝(一)HTTP协议/IIS 原理及ASP.NET运行机制浅析【图解】
网络协议·http·asp.net
微硬创新15 小时前
耐达讯自动化16路0-20mA转PROFINET协议转换模块技术说明
人工智能·网络协议·自动化·信息与通信
微学AI16 小时前
从连接到安全落地:KES MCP Server 工程化实践的全记录
安全
A-刘晨阳17 小时前
数据主权时代:自主可控时序大模型TimechoAI筑牢关键基础设施安全防线
大数据·安全