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

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

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

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

请事先将 test.abcd.com 解析到 frp所在服务器的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网站

复制代码
server {
    listen 80;
    listen [::]:80;
    server_name test.abcd.com;

    # Prevent nginx HTTP Server Detection
      server_tokens off;

    ## 为防止封堵端口,修改了ssl端口
      listen 33443      ssl http2;  
      listen [::]:33443 ssl http2;
  
    # Path to the root of your installation
      root /usr/share/nginx/html;
      index index.html index.php index.htm index.nginx-debian.html;
  
    # The CA keys and crt files' directory 
      ssl_certificate     /etc/nginx/ssl/test-site.crt;
      ssl_certificate_key /etc/nginx/ssl/test-site.key;

}

三、 配置本地frpc.ini

复制代码
cat /etc/frp/frpc.ini

### 内容如下,注意 Type = https ,local_port = 33443,我们自定义的HTTPs-SSL监听端口。

[common]
server_addr = www.yourfrp.com
server_port = 7000

[ssh-33443]
type = https
local_ip = 127.0.0.1
local_port = 33443
custom_domains = test.abcd.com

四、服务端frps.ini 的配置

注意: 这个是关键

复制代码
cat /etc/frp/frps.ini

###  内容如下

[common]
bind_port = 7000
vhost_https_port = 443
vhost_http_port = 8080

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

在服务端

复制代码
systemctl restart frps.service

在用户端

复制代码
nginx -t
systemctl restart nginx
systemctl restart frpc.service

六、测试是否成功

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

选择高级,信任证书即可

七、说明

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

相关推荐
xixiaoyunya1 小时前
内网穿透工具选型分析:从 ngrok 的局限性看国内开发场景下的替代方案
网络
FreeTinker2 小时前
远程查看的技术路径与工程选型分析
网络
YXXY3134 小时前
网络基础2(三)
网络
m24tyy6 小时前
常见空间测绘搜索引擎介绍和使用以及子域名的收集
网络·测试工具·搜索引擎
数据安全技术观察6 小时前
数据动态脱敏:让脱敏策略跟着数据目录走
大数据·网络·数据库
我爱cope6 小时前
【计算机网络 | 网络层1:网络层的职责:IP 协议究竟解决了什么问题?】
网络·tcp/ip·计算机网络
dogstarhuang8 小时前
OpenAI GPT-5.6 降价后如何重算 API 账单?多模型路由与成本治理实战
服务器·网络·人工智能·大模型·api·ai应用开发·接口管理
苏宸啊8 小时前
linux网络编程udp服务器和客户端代码编写(echo版本和字典版本)
linux·网络
奇树谦10 小时前
HDD 为什么适合顺序大文件读写:从 RAID 5 到 RAID 50 的原理与性能分析
linux·运维·网络
嵌入式阿蔡11 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库