小程序开发踩坑:Error [ERR_TLS_CERT_ALTNAME_INVALID]

errMsg:uploadFile:fail Error [ERR_TLS_CERT_ALTNAME_INVALID]:Hostname/IP does not match certificate's altname: IP: 127.0.0.1 is not the cart's list;

问题产生背景:

    

小程序需要备案的域名进行交互通信,非备案域名,不可以通信。

小程序通信必须使用https协议,只有测试时才可以使用http+ip通信(需勾选 不校验合法域名、web-view(业务域名)、TLS版本以及Https证书 )

域名已经备案,tls证书申请了阿里云的免费证书。

后台服务器(Apache Tomcat 9) 配置好了tls证书。

问题描述:

在本地测试时:使用https://127.0.0.1:port/xxx 访问本地接口但是如图报错:

uploadFile:fail Error [ERR_TLS_CERT_ALTNAME_INVALID]:Hostname/IP does not match certificate's altnames:IP:127.0.0.1 is note in the cert's list;

<image>

问题解决:

    刚开始也没怎么看提示,以为服务器测试问题,一同乱改还,不过还是不行。

    回来仔细查看提示信息:[别名不被允许的错误]:主机名/IP 不匹配证书的别名列表:ip 127.0.0.1 不在证书列表中。

    问题很明显了:证书的允许列表里不存在127.0.0.1 这个ip或altname。

    问题产生关键原因:免费的tls证书不允许通配的出现,只允许配置一个域名,与该域名捆绑起来,出了该域名外任何域名和IP都不能通过tls证书验证。所以:[ERR_TLS_CERT_ALTNAME_INVALID]

解决办法:

    1、去除tomcat的证书配置,直接使用http协议

    2、修改域名解析为127.0.0.1。(备案后的域名,修改解析比较不划算)。

    3、不想修改域名解析,但是还是要用https协议。(造假欺骗,也就是本地域名解析为127.0.0.1。即修改hosts)通过修改hosts,让域名直接与127.0.0.1通信,不通过dns解析,然后直接使用域名通信。

    4、最完美的解决办法:购买可以通配的tls证书,就可以增加多个hostname/ip,证书就可以多个ip/hostname使用了。

 

你可能感兴趣的:(https,http)