百度地图在局域网内使用HTTPS协议证书认证失败解决方法
问题原因
根据甲方客户要求,需要将项目之前的HTTP协议改为安全的HTTPS协议,且将之前应用的离线百度地图,改为在线百度地图。
HTTPS证书认证需要公网IP,因此在公安局域网下进行HTTPS请求,则会出现百度地图证书认证不通过的问题;如果在局域网环境下建立HTTPS需要自己生成CA认证的认证书导入浏览器
解决方法
1.在浏览器中设置,不阻止证书认证不通过的资源加载,但是该方法在局域网内仍然不起作用
2.生成CA认证导入,该方法对于已经上线的项目,修改成本较大
3.在代码中,将百度地图的请求直接改为HTTP请求,不走认证认证的流程,
正确的调用js–api方法是:
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的密钥"></script>
这样,百度地图之后加载的资源都会遵循HTTP协议,则不会出现证书认证的问题。但是,在实际环境中,使用HTTP协议后连百度资源都木有加载上,悲伤ing。
最终解决方法
在看多种资源之后,发现百度地图是瓦片加载,不同的资源放在不同的服务器上。在实际的部署环境中,外网代理并没有添加全关于百度地图资源的所有域名。于是,根据能够加载百度地图的环境中,打开F12看百度地图都引用了哪些域名资源。我们的