frp+nginx+子域名https

发布于 2022-09-11 20:55:15 字数 1876 浏览 27 评论 0

图片描述

我们有很多设备大概率下是放在内网的,其内部有个web服务,可以在浏览器上访问,如果也是在同一个内网去访问的话,固然是可以直接访问的,但如果人在外面呢?

所以我们做了一个移动端的app,通过内网穿透(用的frp,服务器frps我们提供)来连接这些设备。

因为考虑到多设备,多客户,所以我们用的子域名来访问,这个子域名就是每台设备的“身份证ID”,绝对不会重复,只需在每台设备的frpc.ini配置一下即可。

现在准备在移动端启用https进行加密访问,我的做法是在frps的服务器里再加一层代理,用nginx来做,现在证书也弄好了,假设域名为example.com

我的思路是,移动端发送https请求到nginx,nginx收到以http发送给frps,剩下的就交给frps了。

但实际不是这么回事,我在浏览器访问https://2496.example.com,它说不安全,我的nginx配置内容:

server {
    server_name *.example.com; # managed by Certbot
    root         /usr/share/nginx/html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
        proxy_pass http://$server_name$1:8080;
        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 REMOTE-HOST $remote_addr;
        add_header X-Cache $upstream_cache_status;expires 12h;
    }
    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
    listen       80 ;
    listen       [::]:80 ;
    server_name *.example.com;
    
    return 301 https://$server_name$1;
}

我最近几天在开始接触nginx和frp,有很多不懂,希望有懂的各位朋友能指导一下,谢谢。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故人如初 2022-09-18 20:55:15

letsencrypt你没有配置泛域名,https的是的example.com主网站, 子域名访问的时候当然证书不对。点击游览器的锁图标查看那个域名的证书路径是否和你访问的是一样

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文