解决Etsi OSM Client中SSL版本号错误(error:1408F10B)问题
ETSI OSM Client连接NBI的SSL版本错误修复方案
问题描述
执行OSM Client命令连接NBI北向接口:
osm --hostname nbi:9999 version
触发以下错误:
(35, 'error:1408F10B:SSL routines:ssl3_get_record:wrong version number')
Maybe "--hostname" option or OSM_HOSTNAME environment variable needs to be specified
使用curl测试HTTPS请求时出现相同错误:
curl --verbose https://nbi:9999/osm/version
输出日志:
- Trying 10.152.183.66:9999...
- TCP_NODELAY set
- Connected to nbi (10.152.183.66) port 9999 (#0)
- ALPN, offering h2
- ALPN, offering http/1.1
- successfully set certificate verify locations:
- CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs- TLSv1.3 (OUT), TLS handshake, Client hello (1):
- error:1408F10B:SSL routines:ssl3_get_record:wrong version number
- Closing connection 0
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number
改用HTTP可临时正常,但需通过HTTPS修复OSM Client的连接问题。
排查与修复步骤
1. 适配TLS版本兼容性
- 问题大概率是客户端默认发起的TLS版本与NBI服务端支持的版本不匹配(比如客户端用TLSv1.3,服务端仅支持TLSv1.2)。
- 给OSM Client指定兼容的TLS版本,设置环境变量后再执行命令:
export OSM_SSL_VERSION=TLSv1_2 osm --hostname nbi:9999 version
2. 确认NBI的HTTPS端口正确性
- 检查OSM NBI部署的配置文件(如
nbi.conf),确认HTTPS服务的监听端口是否为9999。部分部署中HTTP用9999,HTTPS会使用其他端口(如443、9443)。 - 若端口错误,修改OSM Client命令中的端口:
osm --hostname nbi:正确HTTPS端口 version
3. 修复SSL证书信任问题
- 如果NBI使用自签名证书,客户端未信任该证书会导致握手失败。将NBI的CA证书添加到客户端信任列表:
- 复制CA证书到客户端的
/etc/ssl/certs/目录 - 执行
update-ca-certificates更新信任链
- 复制CA证书到客户端的
- 或者在OSM Client命令中直接指定CA证书路径:
osm --hostname nbi:9999 --ssl-ca-cert /path/to/nbi-ca.crt version
4. 升级OSM Client版本
- 旧版本OSM Client可能存在TLS协议支持缺陷,升级到最新稳定版:
pip install --upgrade osmclient
内容的提问来源于stack exchange,提问作者Marco Cesana
相关产品推荐
相关产品推荐

