如果你只是想在局域网访问https,同时没有条件配置域名反向代理,推荐使用机器自签名的方式访问。
本方法同样适用与其它需要通过加密方式访问的内网服务,但是注意浏览器还会有不安全提示。
0.环境说明:
| Openresty nginx 版本 | 1.27.1.2-5-1-focal |
| 端口开放 | 18789/80/443 |
1.生成自签名证书:
创建存放目录
mkdir /etc/local_key && cd /etc/local_key
生成证书签名
# 生成自签名证书
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
-keyout server.key \
-out server.crt \
-subj "/C=CN/ST=Shanghai/L=Shanghai/O=Local/CN=192.168.1.100" \
-addext "subjectAltName=IP:192.168.1.100"
注:请将 192.168.1.100 替换为你的实际 IP
证书有效期10年
2.修改反向代理配置:
将127.0.0.1:18789反代到https://192.168.1.100
nginx配置如下:
server {
# 监听 443 端口并启用 SSL,这是你希望通过 https 访问的端口
listen 443 ssl;
# 这里填写你服务器的内网 IP,匹配 CN 的值
server_name 192.168.1.100;
# 指定刚才上传的证书文件路径(请替换为你的实际文件路径)
ssl_certificate /etc/local_key/server.crt;
ssl_certificate_key /etc/local_key/server.key;
# SSL 基础配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
# WebSocket 支持的关键配置
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 将请求转发到你实际的内网服务地址
proxy_pass http://127.0.0.1:18789;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 增加超时时间,防止长时间连接被断开
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
}
# 可选:将 HTTP 请求重定向到 HTTPS
server {
listen 80;
server_name 192.168.1.100;
return 301 https://$server_name$request_uri;
}
如果是使用1PANEL,直接在反向代理里面配置到http://127.0.0.1:18789,并在配置中上传刚刚的两个签名文件。
然后申请SSL,并绑定站点。
3.解决访问http(80)口正常,https(443)口不正常的问题
查看nginx.conf的类似的以下语句:
include /usr/local/openresty/nginx/conf/conf.d/*.conf;
include /usr/local/openresty/nginx/conf/default/*.conf;
include /usr/local/openresty/1pwaf/data/conf/waf.conf;
找到这些文件中包含,类似:
listen [::]:80 default_server;
listen 443 ssl default_server;
将 所有 default_server删除:
listen [::]:80 ;
listen 443 ssl ;
1 ping
[…] Openclaw 局域网自签名访问 […]