• 利用frps搭建本地自签名https服务的透传


    nginx的搭建就不介绍了,教程很多,基本上油手就会。

    在本例中,frp服务器的域名是 www.yourfrp.com,同时也是反向代理nginx服务器;

    本地网站要用的域名: test.abcd.com

    请事先将 test.abcd.com  解析到 frps所在服务器的ip 地址。

    一、https服务所需自签名SSL文件的生成

    openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/nginx/ssl/test-site.key -out /etc/nginx/ssl/test-site.crt

    生成过程中需要填写一系列问题。

    Common Name (e.g. server FQDN or YOUR name) []: test.abcd.com  ## 填写要用的网站域名

    在本例中,签名证书的位置:

    /etc/nginx/ssl/test-site.key

    /etc/nginx/ssl/test-site.crt

    二、 在本地局域网内配置 https网站

    1. server {
    2. listen 80;
    3. listen [::]:80;
    4. server_name test.abcd.com;
    5. # Prevent nginx HTTP Server Detection
    6. server_tokens off;
    7. ## 为防止封堵端口,修改了ssl端口
    8. listen 33443 ssl http2;
    9. listen [::]:33443 ssl http2;
    10. # Path to the root of your installation
    11. root /usr/share/nginx/html;
    12. index index.html index.php index.htm index.nginx-debian.html;
    13. # The CA keys and crt files' directory
    14. ssl_certificate /etc/nginx/ssl/test-site.crt;
    15. ssl_certificate_key /etc/nginx/ssl/test-site.key;
    16. }

    三、 配置本地frpc.ini

    1. cat /etc/frp/frpc.ini
    2. ### 内容如下,注意 Type = https ,local_port = 33443,我们自定义的HTTPs-SSL监听端口。
    3. [common]
    4. server_addr = www.yourfrp.com
    5. server_port = 7000
    6. [web-33443]
    7. type = https
    8. local_ip = 127.0.0.1
    9. local_port = 33443
    10. remotePort = 443
    11. custom_domains = test.abcd.com

    四、服务端frps.ini 的配置

    注意: 这个是关键

    1. cat /etc/frp/frps.ini
    2. ### 内容如下
    3. [common]
    4. bind_port = 7000
    5. vhost_https_port = 443
    6. vhost_http_port = 8080

    五、重启 服务端和用户端的nginx、frps、 frpc

    在服务端

    systemctl restart frps.service

    在用户端

    1. nginx -t
    2. systemctl restart nginx
    3. systemctl restart frpc.service

     六、测试是否成功

    在浏览器打开 : https://test.abcd.com/ 

    选择高级,信任证书即可

    七、说明

    在配置的过程中发现,不需要在服务端的nginx反向代理服务器中再配置相关内容。这可能和frps已经再监听443 端口有关系。 如果要多个二级域名通过443 端口,转发内网的多个https 自签名网站的内容,则需要配置。

    在反向代理服务器中,对nginx进行配置,强制将对test.abcd.com 的访问转发为https

    1. cat /etc/nginx/conf.d/test-site.conf
    2. ## 内容如下
    3. server{
    4. listen 80;
    5. listen [::]:80;
    6. server_name test.abcd.com;
    7. rewrite ^/(.*)$ https://test.abcd.com:443/$1 permanent;
    8. }
    9. server{
    10. listen 80;
    11. listen [::]:80;
    12. server_name test2.abcd.com;
    13. rewrite ^/(.*)$ https://test2.abcd.com:443/$1 permanent;
    14. }
    15. server{
    16. listen 80;
    17. listen [::]:80;
    18. server_name test3.abcd.com;
    19. rewrite ^/(.*)$ https://test3.abcd.com:443/$1 permanent;
    20. }
  • 相关阅读:
    layui实现鼠标移入/移出时显示/隐藏tips
    函数及函数操作
    怎么把cad图纸转换成pdf
    2021Java面试题库大全(内部资源)
    LabVIEW中局部变量和全局变量的分配
    360智慧生活旗舰产品率先接入“360智脑”能力实现升级
    【Android笔记47】Android中的Broadcast Receiver之有序广播和无序广播
    汇编经典程序——将一个字节数据以十六进制形式显示
    【Demo】游戏小地图
    【安全】对称加密、非对称加密、数字签名和CA是什么?
  • 原文地址:https://blog.csdn.net/lggirls/article/details/132641633