You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OSMnx调用Nominatim遇SSL证书验证失败错误求助

解决OSMnx调用Nominatim时的SSL证书验证错误

你遇到的这个SSL证书验证失败的问题,大概率是因为本地CA证书库未包含Nominatim服务器的最新证书,或者你只修改了OSMnx源码中一处请求的verify参数,没覆盖到所有请求场景。下面给你几个可行的解决方法,按推荐优先级排序:

1. 更新本地CA证书(最安全的方案)

这是最稳妥的解决方式,从根源上修复证书信任问题:

  • Linux(Debian/Ubuntu系):执行终端命令更新证书库
    sudo apt-get update && sudo apt-get install --reinstall ca-certificates
    
  • Windows:通过「设置 → 更新和安全 → Windows更新」安装系统更新,或者手动下载Nominatim服务器的根证书并添加到系统信任存储
  • macOS:打开「钥匙串访问」,导入并信任Nominatim的根证书,或者执行终端命令更新系统证书
    security find-certificate -a -p /Library/Keychains/System.keychain > /tmp/ca-bundle.crt && sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /tmp/ca-bundle.crt
    

2. 通过OSMnx配置全局设置请求参数(无需修改源码)

如果你暂时无法更新证书,可以通过OSMnx的配置功能,让所有内部请求都跳过SSL验证,比修改源码更可靠:

import osmnx as ox
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

# 禁用不安全请求的警告(可选,避免控制台刷屏)
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
# 全局设置OSMnx的请求参数,跳过SSL验证
ox.config(requests_kwargs={"verify": False})

# 你的原有代码
location_point = (29.6849782, -95.3991907)
G = ox.graph_from_point(location_point, distance=737884.22, distance_type='bbox', network_type='drive')
G = ox.project_graph(G)
fig, ax = ox.plot_graph(G, node_size=0, node_color='#66CCFF',fig_height=10,fig_width=12,margin=0.03,dpi=150,save=True,file_format='png',show=True,filename='Harvey_map')

3. 更换Nominatim实例

如果官方Nominatim服务器的证书确实存在问题,可以切换到其他公开的Nominatim镜像服务:

import osmnx as ox

# 设置自定义的Nominatim服务地址(示例为英国镜像)
ox.config(nominatim_url="https://nominatim.openstreetmap.org.uk/search")

# 后续代码保持不变
location_point = (29.6849782, -95.3991907)
# ... 其余代码

为什么你修改core.py没用?

OSMnx在多个模块(比如nominatim.py、utils.py等)中都会调用requests.get发送请求,你只修改了core.py中的一处,其他模块的请求仍然会走默认的证书验证逻辑,所以问题没解决。而通过ox.config(requests_kwargs={"verify": False})会把这个参数传递给所有OSMnx发起的请求,覆盖所有场景。

⚠️ 注意:跳过SSL验证会带来安全风险,建议仅在测试或应急场景下使用,生产环境优先采用更新CA证书的方案。

内容的提问来源于stack exchange,提问作者Vondoe79

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:29:33