旧Chromium调用Map API遇ERR_SSL_VERSION_OR_CIPHER_MISMATCH错误求助
解决旧版Chromium调用Mapbox API的SSL版本/加密套件不匹配问题
出现ERR_SSL_VERSION_OR_CIPHER_MISMATCH错误,核心原因是旧版Chromium不支持Mapbox当前要求的SSL/TLS协议版本或加密套件。没法更新Chromium的话,试试这几个方案:
强制指定兼容的SSL配置启动Chromium
启动Chromium时添加命令行参数,强制启用Mapbox支持的旧版SSL/TLS协议和加密套件。比如:chrome.exe --ssl-version-min=tls1.2 --cipher-suite-blacklist=0x000A,0x0039,0x0033
不同旧版本的Chromium支持的参数可能有差异,需要根据实际情况调整参数值,多测试几种组合。用本地代理中转请求
搭一个简单的本地代理服务器,让代理去和Mapbox API建立SSL连接(代理用现代环境的SSL库,能兼容Mapbox的要求),再和旧版Chromium用兼容的协议通信。比如用Python写个小脚本:import requests from flask import Flask, request, Response app = Flask(__name__) MAPBOX_BASE = "https://api.mapbox.com/styles/v1/mapbox/satellite-v9/tiles/" @app.route('/<int:z>/<int:x>/<int:y>') def proxy_tile(z, x, y): access_token = request.args.get('access_token') target_url = f"{MAPBOX_BASE}{z}/{x}/{y}?access_token={access_token}" response = requests.get(target_url, stream=True) return Response(response.content, status=response.status_code, headers=dict(response.headers)) if __name__ == '__main__': app.run(host='0.0.0.0', port=8080)然后把Chromium调用的URL改成
http://localhost:8080/{z}/{x}/{y}?access_token={accessToken},请求就会通过代理中转。临时切换兼容的地图服务
如果前两个方案不好实施,暂时换成支持旧SSL/TLS版本的地图服务,比如部分开源地图的旧服务端点,不过要注意服务的稳定性和授权问题。
内容的提问来源于stack exchange,提问作者Sergio Soares
相关产品推荐
相关产品推荐

