【写在前面】
本人技术宅小小小白一枚(菜要说三遍),最近写完一个小程序后发现如果没有配置合法域名的话,就只能在调试模式下响应自己搭的服务器后端,自然这是比较麻烦的,所以问了很多大佬,自己也在网上搜集了很多方法,终于实现了!

【前提条件】
搭过小程序的朋友想必都很清楚,小程序对于域名的要求是比较高的,需要校验TLS版本以及HTTP证书,讲白了就是需要https开头的域名,详细见下图:

所以在看下面内容前,你要具备:
①需要用后端与自己的小程序进行交互(wx.request()…)
且后端已经搭建完毕,只差反向代理临门一脚
(我本人的小程序后端是基于python的flask框架)
②阿里云(或其他)上有已经备案过的合法域名,具体百度上都有,可以先去看看。
③云服务器上已经安装过“宝塔”服务器运营管理面板
注意:一定要在自己的云服务器上装宝塔,而不是自己的物理机上!!!

怎么,现在都安装好了?那我们就开始吧!

1.安装“宝塔”服务器运营管理面板

安装链接:https://www.bt.cn/
(版本根据你自己云服务器的系统去选择)
我的云服务器系统是windows server 2012 , 所以我将以我的云服务器为例讲解具体的操作。
安装完成之后界面如下:

从上图中我们根据提示访问面板地址,输入账号和密码
注意:面板地址在本机打开,宝塔在云服务器上就行
如果打开的网址无法显示,则看一下注意事项。首先检查一下自己浏览器版本是否符合,如果还不行,则需要我们前往阿里云设置一下安全组内容,放行它所列出的相关端口。具体操作如下:
①登录阿里云服务器,进入控制台,在上方的搜索栏中可以直接搜索“云服务器”选择 云服务器ecs控制台进入,然后点击 网络与安全,再选择 安全组,进入 配置规则

进入如下界面:

入方向添加安全组规则**(右上方)
端口范围选择1/10000(意思是匹配端口范围为1-10000)
授权对象填写 0.0.0.0/0(意思是默认匹配所有端口)

以上操作完成后,那么我们的安全组就成功放行了1-10000的所有端口啦!!!这时候我们再打开面板地址,输入提供的用户名和密码就可以进入宝塔啦!!!

这时候一般会有弹出框,让你选择下载一种web服务器,一定要选择噢,后面反向代理要用到,这里我选择下载的是Apache服务器。
不要骄傲呦,后面的路还很长!

2.下载FRP内网穿透工具

官网上都可以下载,附上链接
http://www.chuantou.org/
(下载不了的话私信我发你安装包)
要注意的是,在你的本机和云服务器端都要下载FRP,需要同时配置服务器端和客户端,实现交互功能
这里需要解释一下为什么要下载内网穿透工具,以下仅是我个人的一些理解,如有错误,欢迎指正:
专业知识不够,只能讲个大概,我们自己搭的小程序后端是在我们本机的局域网下运行的,要想实现用户通过外网访问小程序并响应服务器,则需实现内网穿透。
当然,我们也可以不需要用内网穿透,直接放在自己的云服务器下跑就可以了,不过自己在使用云服务器跑小程序时,无法顺利响应后端,故只能移步到我的本机
这时候我们的FRP闪亮登场啦!!!之前有用过花生壳和NATAPP,嘶感觉解决不了我https响应的问题
①下载完成后,打开文件,显示如下:


可以很清楚看到,里面包含frpc(客户端)和frps(服务器端)两类文件,下面我们开始配置吧!

②首先我们在云服务器中打开该文件夹,双击打开frps.ini文件,将里面内容修改为:

[common]
#服务器端端口
bind_port=7000
#客户端连接凭证
privilege_token=5201314
#最大连接数
max_pool_count=10#客户端映射的端口
vhost_http_port = 5200#服务器看板的访问端口
dashboard_port=7500
#服务器看板账户
dashboard_user=admin
dashboard_pwd=admin

打开服务器的cmd,cd到文件夹路径,输入

frps.exe -c frps.ini

注意这是在服务器里的命令!

③在本机中,同样进行相应的操作,但注意

[common]
server_addr = xx.xx.xx.xx    #云服务器的公网ip地址
server_port = 7000
privilege_token=5201314
[web]
type = http
local_port = 5000  #默认响应端口
custom_domains =   xxxx    #合法域名
[tcp1]
type = tcp
local_port = 9091
remote_port = 1111

不清楚也没关系,照样子改一下,后面再深入学习
打开本机的cmd,cd到文件夹路径,输入

frpc.exe -c frpc.ini

注意这是在用户机里的命令!

以上我们就已经成功实现内网穿透啦!!!
接下来就是见证奇迹的时刻

首先我们在本机上打开实现准备好的域名,加端口7500

#服务器看板的访问端口
dashboard_port=7500

输入用户名和密码—>均为admin,在服务器端自行设置

#服务器看板账户
dashboard_user=admin
dashboard_pwd=admin

进入的页面就是我们实现内网穿透的详细信息啦

然后 我们更换端口为5200

#客户端映射的端口
vhost_http_port = 5200

进入的页面就是我们后台所实现的功能界面啦(如果你写了与小程序响应的页面的话)

做到这里我们已经成功实现了内网穿透喽!

3.使用Nginx/Apache实现反向代理

①这里我们就要用到宝塔啦,进入宝塔,在左侧选项栏中选择网站,点击添加站点

②建好后,点击域名进入,在左侧选项栏中选择SSL
下载SSL证书并输入密钥及证书(百度有教程)

③再在左侧选项栏中选择反向代理

③然后点击添加反向代理,相应操作如图:
(我用的是Apache服务器,和nginx服务器的弹出框稍微有些不同,不过无影响)

④最后在浏览器中输入域名

啊!终于结束啦!至此,我们已经成功的通过Apache反向代理实现了我们所需要的端口转发啦!这时候我们再用小程序调用wx.request()、wx.uploadFile()等函数就可以在检验合法域名的情况下轻松的返回想要的数据啦!!!

【写在后面】
对于小程序只能在调试模式下返回数据实在很闹心,所以解决上述问题之后实在“大快人心 ”!上述过程若有疑惑之处,欢迎留言或私信交流哦!看完后觉得有用的话,点个赞再走呗

最后祝大家生活愉快,bug都会改!!!

微信小程序合法域名检验实测成功相关推荐

  1. 微信小程序合法域名配置

    在微信小程序的开发过程中,当需要请求第三方网站数据时.各种教程就直接说调用wx.request接口即可.但是当初学者自己用的时候就会出现问题.比如我们这里请求聚合数据的API(里边有不少免费的数据申请 ...

  2. 微信小程序合法域名的配置

    微信小程序中有时会报:'XXX不再合法域名名单列表中,请参考文档 https://mp.weixin.qq.com/debug/...',这是在调用第三方数据时,必须设置合法的域名. 首先登录微信公众 ...

  3. 微信小程序 服务器域名和业务域名 区别,小程序合法域名和业务域名的区别

    小程序合法域名和业务域名的区别 内容精选 换一换 AppCube允许将标准页面或高级页面发布到微信小程序.本节将介绍在AppCube上发布应用到微信小程序的基本操作,包括:微信公众平台小程序注册.小程 ...

  4. 解决微信小程序配置https不成功问题

    解决微信小程序配置https不成功问题 参考文章: (1)解决微信小程序配置https不成功问题 (2)https://www.cnblogs.com/ant-jmf17/p/8056989.html ...

  5. 【文章转载】- 微信小程序域名收集工具

    微信公众号:信安文摘 通过一个微信小程序接口搜集目标单位域名,学习. 原文链接:奇安信攻防社区-微信小程序域名收集工具开发 https://forum.butian.net/share/890 代码请 ...

  6. Fiddler对微信小程序抓包不成功

    对微信小程序抓包不成功时: 解决方案: 任意打开一个小程序,打开任务管理器找到对应的进程.右键打开文件位置 看到WechatApp.exe变成了WechatAppex.exe了,应该是升级了. 退出电 ...

  7. 微信小程序实现拼团成功动画

    微信小程序实现如上效果. 分为两个组件: PinTuan: 整体组件 PinTuanHead: 每个头像组件 代码如下: PinTuan.js Component({attached:function ...

  8. 微信小程序-提交表单成功弹窗提示

    微信小程序中toast消息提示框只有两种显示的效果,就是成功和加载,使用wx.showToast() 效果如下 相关参数如下 代码很简单 wxml: <button type="pri ...

  9. 微信小程序-域名无法请求localhost

    微信小程序实际使用时域名是无法使用localhost的,该方法只能用于调试时使用 方法如下 微信开发工具-详情-本地设置-勾选不校验合法域名 调试器会显示⚠️警告 VM170:1 工具未校验合法域名. ...

最新文章

  1. 【spring】spel表达式
  2. npm学习(二)之如何防止权限错误
  3. 分布式 | Dubbo 架构设计详解
  4. hibernate性能_改善Hibernate应用程序性能的7种方法
  5. laravel商品图片怎么展示_如何使用Laravel图片处理包intervention-image
  6. Hashtable Dictionary的使用
  7. asyncore.loop()是什么?
  8. 使用文本编辑器编写c代码
  9. matlab调用refprop完全说明,Matlab调用REFPROP终极版说明
  10. 计算机发展史 文档,计算机发展史课件
  11. 论文研究结论怎么写?
  12. 服务器名称指示SNI
  13. 链栈的数据结构以及链栈的实现
  14. 高等数学|一致连续性与连续性
  15. 测试行业3年经验,从大厂裸辞后,面试阿里、字节全都一面挂,被面试官说我的水平还不如应届生
  16. mac重装系统 未能与恢复服务器,Mac系统重装后数据可不可以恢复
  17. 01day入学测试总结
  18. t微信小程序开发-获取微信运动步数
  19. 学习人工智能需要哪些必备基础
  20. Android U盘插拔监听详细版以及U盘写入权限解决办法

热门文章

  1. 嵌入式linux的网络配置,嵌入式linux网络配置
  2. Splinter入门(一)splinter安装与使用
  3. 2014美团网笔试题目(总结)
  4. 3dMax应该用哪个渲染器?Vray、Corona、Arnold?
  5. mxnet训练arcface加速实验
  6. AutoCAD的AccoreConsole - 第二篇(执行脚本)
  7. BIEE入门篇之三 了解BIEE的开始菜单
  8. 获取当月在当天之前的工作日和双休日
  9. 从零实现 USB_SLAVE读卡器 USB_MSC+FATFS+SD/SPI_FLASH/NANDFLASH
  10. 微信朋友圈“文字发”操作技巧,轻松实现不带图发布