局域网内实现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,不会提示该地址不安全。

相关推荐
✧˖‹gσσ∂ иιghт›✧16 小时前
esp32 s3 修改本地ip和服务器IP
服务器·网络协议·tcp/ip
qq_4112624216 小时前
优化wifi的性能,LWIP_TCP_WND是不是指的是DYNAMIC_RX_BUFFER动态接受缓冲区的缓冲区大小
网络·网络协议·tcp/ip
计算机小手17 小时前
内网穿透系列十六:使用 wg-easy 快速搭建基于 wireguard 的虚拟局域网,支持Docker部署
经验分享·网络协议·docker·开源软件
青果网络_xz17 小时前
海外HTTP代理适合哪些业务?与Socks/隧道的区别
网络·网络协议·http
雨落秋垣17 小时前
大屏可视化系统:WebRTC视频流与WebSocket实时数据集成方案
websocket·网络协议·webrtc
ZeroNews内网穿透17 小时前
本地部署 Payara Server 公网访问
运维·服务器·网络协议·安全
阿巴~阿巴~17 小时前
从帧到包:深入解析链路层与局域网通信的核心机制
服务器·网络·网络协议·tcp/ip·智能路由器·mac·数据链路层
科技块儿18 小时前
金融级IP离线库深度测评:IP数据云 vs IPnews vs MaxMind
网络协议·tcp/ip·金融
北京耐用通信18 小时前
耐达讯自动化“通关文牒”:Canopen转Profibus网关,贴片机的“协议通关秘籍”
人工智能·科技·网络协议·自动化·信息与通信