ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## frp搭建小程序https开发穿透环境 ~~~ 内网假域名,就不能做https了吗? frp 可以外网https穿透连接到内网http吗?(不行啊,内网需要证书认证吗,试一下……,不行) 那可以把服务器上的证书直接拿到本地使用吗?(可以使用,几乎同样的配置)但是穿透时错误啊ERR_SSL_PROTOCOL_ERROR 打不开8080 错误原因找到了,原来使用https时本地地址 local_port 不能配置为80端口了啊,设置为443就好了: frpc.ini [web] local_port = 443 ----- tip: 申请ssl要真域名,并且必须在服务器上生成ssl,生成的ssl拿到本地使用真域名(重定向)也是可以用的,但是现在要将真域名https穿透到本地。(一台服务器上生成的ssl拿到另外一台服务器上也是可以直接使用的,当然要域名是一样的) 待研究,反正服务器上生成的证书复制到本地是可以直接用的(当然还是使用生成时的真域名,本地host重定向访问)。 ~~~ > 穿透其实就是改电脑的host,只不过你只能改自己的电脑(只能在自己的电脑上看到**域名重定向**的效果),别人的电脑你改不了,所以现在来个穿透,相当于变相的“改了别人的host”(其实是外网主机的请求被代理到了本地主机),从而实现和你在自己的电脑上改自己的host文件一样的效果。(每个电脑的host文件是上网的起点,原理是一份域名DNS表) [host文件的工作原理及应用 - CSDN博客](https://blog.csdn.net/tskyfree/article/details/41214829) * * * * * ### 附frp 服务器 & 客户端 配置 frps.ini ``` [common] bind_port = 7000 vhost_https_port = 8080 ``` frpc.ini ``` [common] server_addr = 服务器IP server_port = 7000 [web] type = https local_port = 443 custom_domains = 外网域名 header_X-From-Where = frp ``` ### 附本地host文件 ``` # 本地假域名 192.168.1.109 内网假域名 # 真域名映射到本地(穿透时就注释) #192.168.1.109 外网真域名 ``` 针对穿透的真域名可以单独建一个虚拟主机,绑定真域名。 * * * * * ### 相关概念梳理 **本地host文件:** 可以将任意域名映射到本地IP,可以实现用一个假域名重定向到虚拟机。 **nginx:** web服务器 **nginx虚拟主机:** 绑定任意域名,不论内网假域名还是外网真域名,都能绑定。 **nginx_proxy:** 代理,实现访问 IP:A 实际访问 IP:B(但它没有客户端,无法将请求代理到内网主机上,没有穿透功能,所以frp应运而生) **frps:** 将外网请求通过建立链接的客户端frpc转到内网(可理解为一个增强版的nginx_proxy)(使用配置运行) **frpc:** 通过与服务端建立的连接进行通信,实现内外与外网的数据交换(可理解为使用QQ相互传输数据)(使用配置运行) **外网服务器:** 外网生产服务器,只能通过外网IP访问 **本地虚拟机:** 内网的服务器(通过虚拟机VirtualBox搭建),本地开发主机,没有可访问的外网IP,只能在局域网内被访问 >[tip] 涉及到的东西有点多而且很乱,但是如果你能先把上面的一些概念弄明白,那其它东西就自然清晰了。 * * * * * ### 扩展 [nginx frp http/https 配置 (全部都是docker 安装) - CSDN博客](https://blog.csdn.net/u011164906/article/details/81169005) [frp 自动启动 – 码农的世界](https://free-e.net/109) [微信开发必备神器frp - CSDN博客](https://blog.csdn.net/woaiqianzhige/article/details/80712525) [微信小程序部署HTTPS报错怎么办? - CSDN博客](https://blog.csdn.net/sinat_36947685/article/details/53638660) [Linux下使用acme.sh申请和管理Let’s Encrypt证书 - 明月登楼的博客](https://www.imydl.com/linux/5744.html) [LNMP环境镜像使用手册](https://oneinstack.com/docs/lnmpstack-image-guide/)(内网应该也是可以申请ssl证书的,但不知为什么,在本地虚拟主机上添加虚拟主机时生成ssl操作失败了,总是创建证书失败,在服务器则可以生成ssl证书。) [在局域网内实现https安全访问 - 简书](https://www.jianshu.com/p/631719c9f0c6) [iis内网程序想用https访问,ssl证书怎么弄-CSDN问答](https://ask.csdn.net/questions/181470?sort=comments_count) [内网 HTTPS 反代的 SSL 证书问题 - V2EX](https://www.v2ex.com/t/265637) [局域网内可以架设安全的https网站么? - 知乎](https://www.zhihu.com/question/27878215) > 证书是和域名匹配的,因此访问 https 网站(已认证)一般是需要公网IP地址,且一个公网IP地址只能安装一个SSL证书。**内网当然也可以架设 https 网站,如果不想用自签名证书的话,那则需要一个已认证的域名SSL,可在内网的 DNS 服务器上将此域名解析到内网 IP 上即可。** [SSL/TLS安全评估报告](https://myssl.com/) * * * * * ### 其他 远程调试:[远程调试 · ThinkPHP5.0完全开发手册 · 看云](https://www.kancloud.cn/manual/thinkphp5/156120)(如链接失败,命令运行加 `./` ,即 `./socketlog-server` 试试) * * * * * last update:2018-8-8 22:36:00