局域网内实现HTTPS

为满足安全性等需求,有时候需要在局域网内使用https,本文介绍一种可实践的方案:hosts域名映射 + nginx反向代理 + 客户端信任证书。

1、通过openssl生成证书

新建证书配置文件ssl.config

bash 复制代码
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_ca
prompt = no

[req_distinguished_name]
C = CN
ST = 广东
L = 深圳
O = 内网服务
OU = IT部
CN = 192.168.1.100  # 与访问的IP/域名一致

[v3_ca]
subjectAltName = @alt_names
# 启用CA证书标识(让系统识别为根证书)
basicConstraints = CA:TRUE
keyUsage = digitalSignature, keyEncipherment, keyCertSign
extendedKeyUsage = serverAuth, clientAuth

[alt_names]
IP.1 = 192.168.1.100  # 必须包含访问的内网IP
# 若用域名访问,添加DNS字段:
# DNS.1 = web.lan

生成证书

bash 复制代码
openssl genrsa -out server.key 2048
openssl req -new -x509 -nodes -key server.key -days 36500 -out server.crt -config ssl.config

2、nginx配置反向代理

编辑nginx.conf

bash 复制代码
   server {
      listen 443 ssl;
      server_name 192.168.1.100; #与访问的IP/域名一致
      ssl_certificate server.crt;
      ssl_certificate_key server.key;
      ssl_session_timeout 5m;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
      ssl_prefer_server_ciphers on;
      ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
      
      

   }

nginx -s reload

3、将server.crt复制到访问的客户端电脑上,双击,【安装证书】;选择【本地计算机】,下一步;勾选【将所有证书放入下列存储】,浏览,选择【受信任的根证书颁发机构】,完成安装,重启浏览器,此时可以正常访问https://192.168.1.100,不会提示该地址不安全。

相关推荐
网络小江3 小时前
上网第五十二课:加密隧道与拨号专网——安全接入的通俗解释
网络协议
盛世宏博智慧档案5 小时前
TCP以太网温湿度传感器:从RS485痛点突围到工业组网实战
网络·网络协议·tcp/ip
wdfk_prog6 小时前
LWIP教程 13:从 `dhcp_start()` 到 `DHCP_STATE_BOUND`——DHCPv4、ACD、Timer 与真实抓包
运维·网络协议
zoyation7 小时前
jrp 1.2.0 重磅发布|P2P打洞直连 · 端口自动分配 · 一端口多服务,这次全齐了!
网络·网络协议·p2p
盛世宏博智慧档案8 小时前
IP 温湿度设备频繁断连?TCP 心跳保活机制调试与参数设置指南
网络·网络协议·tcp/ip·php·传感器·温湿度
网络小江8 小时前
上网第五十六课:第八周复盘——实战与安全快问快答
网络协议
青衫客369 小时前
从网卡到 Socket:再探 Linux 网络协议栈与 iptables 数据包处理流程
linux·网络·网络协议
zxanz110 小时前
SSL 证书申请中,服务器验证跟 DNS 解析验证有什么区别?
服务器·网络协议·ssl
TechWayfarer19 小时前
精度极限的突破:AI与IPv6如何重塑高精度IP查询
人工智能·网络协议·tcp/ip·transformer
墨神谕1 天前
RPC框架与HTTP REST的区别
网络协议·http·rpc