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