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

相关推荐
B2_Proxy9 小时前
IP 来源合规性,正在成为全球业务的隐性门槛
网络·爬虫·网络协议·安全
路由侠内网穿透.11 小时前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居
吠品11 小时前
什么是 IP SSL 证书?该如何申请
网络协议·tcp/ip·ssl
奋斗羊羊12 小时前
TCP、UDP 和串口通信对比分析
网络协议·tcp/ip·udp
不知名。。。。。。。。15 小时前
传输层————TCP/UDP
网络协议·tcp/ip·udp
REDcker15 小时前
RFC1918私有IP地址空间详解
网络协议·tcp/ip·php
Flamingˢ16 小时前
FPGA中的存储器模型:从IP核到ROM的深度解析与应用实例
网络协议·tcp/ip·fpga开发
吠品16 小时前
IP证书-SSL证书申请
网络·网络协议·tcp/ip
四月_h16 小时前
vue2项目集成websocket
网络·websocket·网络协议
星辰徐哥16 小时前
易语言网络通信编程基础:HTTP/HTTPS/TCP/UDP实战开发
开发语言·http·https·udp·tcp·易语言