小程序在本地开发的时候大家通常会在微信开发者工具中设置“
不校验合法域名、web-view (业务域名)、TLS 版本以及HTTPS证书
”,久而久之可能会忘掉这个操作,然后打包直接上线发布,结果发现访问会报错request:fail url not in domain list
,接下来我就简单说一下怎么解决这个问题
-
需要准备SSL证书,该证书可以去阿里云申请,我用的也是申请一年的免费证书,过期可以重新申请,申请下来证书需要下载下来,下载
nginx
格式,如下图: -
还需要准备域名,这个基本大家公司里面都会有的,直接使用同一个域名即可,用不同的端口号来访问不同的项目
-
少不了nginx,用来代理转发访问小程序访问来的
https+域名
方式访问来的请求至后端api接口地址
下面引入官方文档对服务器域名配置的介绍官网服务器域名配置介绍,反正我是懒得看,就直接开始自己配置了
- 首先要使用打开nginx的配置文件
nginx.conf
,打开之后修改如下图:
nginx的配置说明可以网上百度一下,很多成熟的文章介绍,我这边就不再多说了,就简单讲一下修改的配置说明: listen 8083 ssl
:代表访问的端口,这块之前默认的是443端口,但是因为我另外一个项目已经使用了443端口,所以我就修改为了8083,同样可以使用,只不过访问时需要域名+端口号,最后只是用来访问接口的,也无所谓是否显示端口了。server_name
:这里填写的是你申请的域名,当然是要求备案过的。ssl_certificate 和 ssl_certificate_key
:这里是你存放SSL证书的路径,分别对应秘钥和key,我是放到了根目录/nginx-1.24.0/ssl
,这个根据你自己的路径引入即可。location /ghgriot
:这里就是指向你的后端项目的接口路径,,比如我的server_name
设置的是www.baidu.com
,然后这里的proxy_pass
指向地址是http://127.0.0.1:8080
,当我请求www.baidu.com:8083/ghgriot
时就会把请求指向当前设置的代理地址http://127.0.0.1:8080
中去请求
以上设置完之后,把设置好的地址填到小程序的服务器域名中即可
之后可以在本地测试时,关闭本地的不校验合法域名、web-view (业务域名)、TLS 版本以及HTTPS证书
进行测试,看是否通过验证
大致就是这个流程即可完成正常的小程序访问,如果还有其他的疑问,可以回复留言,我这边看到会第一时间回复自己能帮到的问题。