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网站

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

[web-33443]

type = https

local_ip = 127.0.0.1

local_port = 33443

remotePort = 443

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 自签名网站的内容,则需要配置。

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

cat /etc/nginx/conf.d/test-site.conf

## 内容如下

server{

listen 80;

listen [::]:80;

server_name test.abcd.com;

rewrite ^/(.*)$ https://test.abcd.com:443/$1 permanent;

}

server{

listen 80;

listen [::]:80;

server_name test2.abcd.com;

rewrite ^/(.*)$ https://test2.abcd.com:443/$1 permanent;

}

server{

listen 80;

listen [::]:80;

server_name test3.abcd.com;

rewrite ^/(.*)$ https://test3.abcd.com:443/$1 permanent;

}

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: