️ 内网 HTTPS 服务自签名证书配置指南(支持 VIP + 多服务器 IP)

一、背景

在内网环境中,通过 ​VIP(如 11.196.188.25)​​ 访问部署在多台服务器(如 11.196.188.2 和 11.196.188.3)上的 HTTPS 服务时,若使用自签名证书,浏览器会提示不安全。

本方案教你如何生成一张支持 ​多 IP(VIP + 实际服务器)​​ 的自签名证书,并正确部署到 Nginx,同时解决浏览器信任和 WAF 证书同步问题。


二、解决方案概览

  1. 用 OpenSSL 生成一张 ​包含 VIP 和实际服务器 IP 的自签名证书
  2. 配置 Nginx 使用该证书提供 HTTPS 服务
  3. 将证书导入客户端(浏览器/操作系统)信任区,消除浏览器警告
  4. 若有 WAF,需同步更新 WAF 上的 SSL 证书

三、操作步骤

1️⃣ 创建 OpenSSL 配置文件(xxx.cnf)

新建文件 xxx.cnf,内容如下:

[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
x509_extensions = v3_req [dn]
C = CN
ST = Beijing
L = Beijing
O = YourOrg
OU = YourUnit
CN = 11.196.188.25 # VIP [v3_req]
subjectAltName = @alt_names [alt_names]
IP.1 = 11.196.188.25 # VIP
IP.2 = 11.196.188.2 # 实际服务器1
IP.3 = 11.196.188.3 # 实际服务器2


2️⃣ 生成证书和私钥

执行命令生成自签名证书 server.crt 和私钥 server.key

openssl req -x509 -nodes -days 36500 -newkey rsa:2048 \
-keyout server.key \
-out server.crt \
-config xxx.cnf

3️⃣ 配置 Nginx 使用证书

server.crtserver.key 部署到 Nginx 服务器(VIP 或实际服务所在机器),修改 Nginx 配置,例如:

server {
listen 11.196.188.25:8008 ssl;
server_name 11.196.188.25; ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key; location / {
proxy_pass http://backend;
}
}

注意:server.crt 就是证书文件,有些地方也叫 server.pem,可自行重命名,但内容不变。

重载 Nginx:

nginx -t && systemctl reload nginx

4️⃣ 客户端导入证书(消除浏览器警告)

由于是自签名证书,需手动导入到客户端信任区:

  • Windows​:双击 server.crt → 安装到“受信任的根证书颁发机构”
  • macOS​:双击证书 → 钥匙串访问 → 信任设置为“始终信任”
  • Linux​:导入到系统或用户 CA 区域

重启浏览器访问:

https://11.196.188.25:8008/,确认无警告。


5️⃣ 若有 WAF,记得同步更新证书!

如果你的 VIP 前面有 WAF(如安全网关、防火墙等),浏览器访问时实际看到的是 WAF 的 SSL 证书!​

所以,你还要登录 WAF 管理后台,将 WAF 上配置的 HTTPS 证书替换为刚生成的 server.crtserver.key,并重载 WAF,否则浏览器仍然显示旧证书或报错。


四、总结

步骤 操作
1 用 OpenSSL 生成支持 VIP + 多服务器 IP 的自签名证书(xxx.cnf 配置)
2 配置 Nginx 使用该证书,监听 VIP 的 HTTPS 端口
3 将证书导入客户端信任区,浏览器不再报警
4 若有 WAF,同步更新 WAF 的 SSL 证书

按上述步骤操作后,你的内网 HTTPS 服务即可通过 VIP 安全访问,支持多服务器 IP,且浏览器信任、无警告!

内网 HTTPS 服务自签名证书配置指南(支持 VIP + 多服务器 IP+忽略浏览器安全提醒)的更多相关文章

  1. frp + nginx 配置多人共用的http 内网穿透服务

    来源:简书   https://www.jianshu.com/p/c9d7527d607b 一. 前言 frp 是一个用Go语言开发的,可用于内网穿透的高性能的反向代理应用,支持 tcp, udp ...

  2. 四、frp内网穿透服务端frps.ini各配置参数详解

    [必须]标识头[common]是不可或缺的部分 [必须]服务器IPbind_addr = 0.0.0.00.0.0.0为服务器全局所有IP可用,假如你的服务器有多个IP则可以这样做,或者填写为指定其中 ...

  3. 手写内网穿透服务端客户端(NAT穿透)原理及实现

    Hello,I'm Shendi. 这天心血来潮,决定做一个内网穿透的软件. 用过花生壳等软件的就知道内网穿透是个啥,干嘛用的了. 我们如果有服务器(比如tomcat),实际上我们在电脑上开启了服务器 ...

  4. 五、frp内网穿透客户端frpc.ini各配置参数详解

    [必须]标识头[common]是不可或缺的部分 [必须]frps服务端IPserver_addr = 0.0.0.00.0.0.0为FRP服务端IP,客户端要填写为服务端已配置的对应的IP,或者是服务 ...

  5. 通过rinetd实现端口转发来访问内网的服务

    通过rinetd实现端口转发来访问内网的服务 一.   问题描述 通过外网来访问内网的服务 二.   环境要求 需要有一台能够外网访问的机器做端口映射,通过数据包转发来实现外部访问阿里云的内网服务 三 ...

  6. 通过rinetd实现port转发来訪问内网的服务

    一.   问题描写叙述 通过外网来訪问内网的服务 二.   环境要求 须要有一台能够外网訪问的机器做port映射.通过数据包转发来实现外部訪问阿里云的内网服务 三.   操作方法 做port映射的方案 ...

  7. https搭建(自签名证书)

    博客搬家: https搭建(自签名证书) 上一篇博客探究了https(ssl)的原理,为了贯彻理论落实于实践的宗旨,本文将记录我搭建https的实操流程,使用Apache2+ubuntu+openss ...

  8. p2p-tunnel 打洞内网穿透系列(三)TCP转发访问内网web服务

    系列文章 p2p-tunnel 打洞内网穿透系列(一)客户端配置及打洞 p2p-tunnel 打洞内网穿透系列(二)TCP转发访问远程共享文件夹 p2p-tunnel 打洞内网穿透系列(三)TCP转发 ...

  9. QuantumTunnel:内网穿透服务设计

    背景 最近工作中有公网访问内网服务的需求,便了解了内网穿透相关的知识.发现原理和实现都不复杂,遂产生了设计一个内网穿透的想法. 名字想好了,就叫QuantumTunnel,量子隧道,名字来源于量子纠缠 ...

  10. nginx 配置https并自签名证书

    2016-10-28 转载请注明出处:http://daodaoliang.com/ 作者: daodaoliang 版本: V1.0.1 邮箱: daodaoliang@yeah.net 参考链接: ...

随机推荐

  1. Linux如何进入bios

    如何通过Linux系统进入bios 我们都知道在系统没启动前用按键进入bios,但是如果在启动没启动之前按键失效(bios里面设置的原因). 如果能进入linux系统,那么可以执行 sudo syst ...

  2. 第2讲、Tensor高级操作与自动求导详解

    1. 前言 在深度学习模型中,Tensor是最基本的运算单元.本文将深入探讨PyTorch中两个核心概念: Tensor的广播机制(Broadcasting) 自动求导(Autograd)机制 这些知 ...

  3. redis客户端选型-Jedis、lettuce、Redisson

    做个笔记,老是记不住 https://www.jianshu.com/p/ee30c184c854

  4. 跨平台之 KMP / KMM 详解

    任何事情,急于求成都是幼稚的幻想,急于求成的结果一定是不成,对此不应该有任何怀疑. 一. KMP 和 Compose Multiplatform 摘要:减少为不同平台编写和维护相同业务逻辑代码所花费的 ...

  5. HarmonyOS运动开发:打造你的专属运动节拍器

    ##鸿蒙核心技术##运动开发##Media Kit(媒体服务)# 前言 在运动过程中,保持稳定的节奏对于提升运动效果至关重要.无论是跑步.骑自行车还是进行高强度间歇训练(HIIT),一个精准的节拍器都 ...

  6. Socket实战与应用

    1: Socket之序列化; 让对象能够通过socket进行传输 服务端: 1 package com.lv.study.am.first; 2 3 import java.io.ObjectOutp ...

  7. Java编码小技巧

    你在写一个方法的时候, 例如传入 两个数组,而你要写的方法代码块又恰好有一种判断方式会导致你要写两个相同代码块, 你就可以自己调用自己,并把传参顺序 换一下 public int[] intersec ...

  8. C#/.NET/.NET Core技术前沿周刊 | 第 44 期(2025年6.23-6.30)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  9. sass 定义全局变量

    定义变量文件 随便写一个scss文件,比如在 src/assets/var.scss $my-color: #00b96b; 打包工具配置 不同工具 如webpack.vite有不同的处理方式加载到全 ...

  10. Loop 三角网格细分基于openmesh

    简介 Loop 是三角网格常用的细分算法之一. 原理基于二次B样条曲线. Image 参考链接 https://blog.csdn.net/Hachi_Lin/article/details/9034 ...