️ 内网 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. 重磅开源 基于AI大语言模型的AI 助手全套开源解决方案 AI开源平台

    介绍 GeekAI 基于AI大语言模型的AI 助手全套开源解决方案,自带运营管理后台,开箱即用.集成了 OpenAI, Claude, 通义千问,Kimi,DeepSeek等多个平台的大语言模型. 基 ...

  2. elasticsearch RestHighLevelClient 关于document的常用操作 ---------- 查询篇

    在es中查询大致分为两类:普通查询.复杂查询. 普通查询只需要使用:GetRequest即可 复杂查询涉及很多: SearchSourceBuilder(用于指定搜索条件时的附加条件:排序.分页.查询 ...

  3. 一种通用的arduino通信例程

    本教程将给出一种通用的,适用于arduino(uno和mega等)单片机的一个通信的教程,通过对例程的修改,可以做成任意的符合需求的代码,下面请看. // 函数定义 String detectStri ...

  4. TemplatesImpl结合cc6在Shiro中的利用

    TemplatesImpl结合cc6在Shiro中的利用 这个文章也是参考p牛的文章;但其中许多细节,就比如为什么普通的Transformer[]数组链不能再shiro中使用; 但其中大致原理还是说一 ...

  5. ArkUI-X在Android上使用Fragment开发指南

    本文介绍将ArkUI框架的UIAbility跨平台部署至Android平台Fragment的使用说明,实现Android原生Fragment和ArkUI跨平台Fragment的混合开发,方便开发者灵活 ...

  6. SAP采购订单屏幕控制

    这里看交货计划的屏幕控制:交货计划增强,不可编辑 采购订单的程序是用类+屏幕写的. 所以直接看采购订单的程序:MEGUI 找到我们需要增强的屏幕,屏幕号1320 对应的类对象. BUILD_DYNPR ...

  7. c++ 预处理 编译 链接 文件组织形式

    -- 整体流程 C++ 源文件 (.cpp) ↓ 预处理(展开头文件.宏替换等) 预处理后的代码 (.i) ↓ 编译(编译器) 汇编代码 (.s) ↓ 汇编(汇编器) 目标文件 (.o / .obj) ...

  8. ABB机器人指令 PackRawBytes

    参数: Value, RawData \Network , StartIndex ,\Hex1|IntX|\Float4|\ASCII; Value: 需要打包的数据, 类型包含num.dnum, b ...

  9. 三、FFmpeg学习笔记

    ​ FFmpeg是一个开源.跨平台的多媒体处理框架,能够实现音视频的录制.转换.剪辑.编码.解码.流媒体传输.过滤与后期处理等几乎所有常见的多媒体操作.其强大之处在于几乎支持所有的音视频格式.编解码器 ...

  10. Apache NiFi C2 Client 实现详解

    项目标题与描述 Apache NiFi C2 Client 是Apache NiFi项目中的Command and Control (C2)协议客户端实现,主要用于与C2服务器进行通信,实现远程管理和 ...