Top Menu

如何解决微信小程序同Web API交互的域名备案问题

最近在尝试微信小程序,但是文档里明确说明了如果小程序要和Web API进行交互,那么必须要是备案的域名,否则无法和服务器进行通信。但是又不想去备案,研究了很久,终于发现一个方法,可以完美的解决域名备案问题。

在微信小程序中,如果需要同外部服务器通信,那么必须要满足如下要求

  • 通信服务器域名必须已备案
  • 连接方式必须为HTTPS

HTTPS这条很简单,但是备案这条就非常麻烦。(阿里云域名备案流程

网上找了下解决方法,有一个方法可以绕过,就是用新浪云购买任意产品,会给一个新浪云的二级域名,因为主域名是备案的,并且新浪云支持二级域名HTTPS访问,所以这个二级域名就符合微信小程序对域名的所有要求。

但是这个方法的缺点就是必须要在新浪云搭建服务端,或者作为请求中转,并且新浪云产品就算不用也要收取3元/月的最低使用费。PASS

在更加深入的搜索之后,发现网上有很多直接卖已备案域名的网站,价格基本都是130-500,不过都是要通过客服交易,且域名的注册商大都在国内,管理起来不方便,其次二手域名的交易也感觉很不安全。PASS

既然已经找到了购买已备案域名这条路,但是又不想承担二手域名交易的风险,那么有没有已备案的一手域名呢?

找了下还真有,就是直接注册过期删除的已备案域名,因为备案不会随着域名的过期而注销,所以只要备案过一次,那么这个域名终身都是有备案号的,之前怎么就没有想到,而且还非常方便,直接到Godaddy注册就行,唯一的问题是如何找到过期的已备案域名,但是ChinaZ已经想到了这点,做了一个很方便的工具用来查询已备案的过期域名。

方法

1.在每天的域名删除列表中查询已删除的备案域名(查询

2.找到还没有被注册的已删除有备案的域名

3.到自己喜欢的域名注册商注册这个域名

4.All Done!

根据注册商不同,注册的价格也不同,Godaddy略贵,com-70/org-50,但是相比购买二手域名还是便宜很多。

注册完成后,就可以直接把这个域名添加到微信小程序的后台信任域名列表中了。

这个方法的优点是灵活性非常的高,不用任何第三方参与,1小时就可以完成备案域名的购买和部署,以后有任何问题只要买一个新的替换就可以。

PS

根据留言反馈,国内的注册商或主机商似乎会主动帮用户注销之前的备案信息,所以如果想保留备案信息,请使用国外的注册商并绑定国外的主机服务商,自用的Godaddy+Linode这个组合自2018.5.9注册至2018.8.20为止还可正常查询到之前的备案信息。另外建议注册删除域名的时候选择备案主体为公司的域名,被注销的概率比较小。

12 comments

  • Hello, guest
  • 可能现在注册局也知道这个情况了,删除列表中已备案的域名绝大部分都已经无效了
    • author
      确实,这个漏洞已经修复了,其实只要每天自动获取删除列表然后匹配数据库就可以了,之前可能是因为各种原因没有加入自动化脚本。
  • 按照你的说法,在万网买了“s..x.cc”的域名,用阿里云绑定新的IP后,发现备案信息没有了,查询发现“未备案”。 这个怎么破?
    • author
      刚刚查了下备案,之前在Godaddy注册绑定在Linode的过期域名的备案信息还在,我估计是阿里云或者万网会主动核对域名所有人和备案所有人,并主动销户,方便用户后续再次备案。所以如果不想被注销备案,想继续沿用之前的备案信息,就不能用国内的注册商注册,也不能绑定国内的主机商。
      • 非常感谢及时答复!你的意思是: 域名不能绑定阿里云、华为云、腾讯云这样的ECS虚拟机么? 那该如何映射域名和IP呢?多谢多谢
      • author
        是的,如果使用过期的已备案域名就不能绑定国内的阿里云之类的主机,目前绕开备案的唯一可行的方法只能是绑定国外主机,例如Linode或者Digitalocean这种
  • 按照你说的方法,在阿里云查询提示“预订域名 s...emi.cc暂不能备案”
    • author
      是不是因为已经有备案信息所以阿里云无法预定已备案域名,可以试试用国外注册商预定

Powered by WordPress. Designed by WooThemes