OpenSSL 无法验证 DevSidecar 的自签名证书

执行 openssl verify /usr/local/share/ca-certificates/dev-sidecar.ca.crt 报错

CN = DevSidecar - This certificate is generated locally, C = CN, ST = GuangDong, L = ShenZhen, O = dev-sidecar, OU = https://github.com/docmirror/dev-sidecar
error 18 at 0 depth lookup: self-signed certificate
error /usr/local/share/ca-certificates/dev-sidecar.ca.crt: verification failed

这个错误表明 OpenSSL 无法验证 DevSidecar 的自签名证书,因为它是自签名的(self-signed),默认不受系统信任。以下是解决方案:

1. 配置 Python 直接信任该证书

在 Python 代码中指定证书路径:

import os
os.environ['REQUESTS_CA_BUNDLE'] = '/usr/local/share/ca-certificates/dev-sidecar.ca.crt'

# 然后再加载模型
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('all-MiniLM-L6-v2')

2 手动将该证书添加到受信任的根证书(推荐)

步骤:
将证书复制到 CA 存储目录:

sudo cp /usr/local/share/ca-certificates/dev-sidecar.ca.crt /usr/share/ca-certificates/

生成证书哈希链接:

sudo openssl x509 -hash -noout -in /usr/share/ca-certificates/dev-sidecar.ca.crt

这会输出一个哈希值(如 a1b2c3d4)。

创建符号链接:

sudo ln -s /usr/share/ca-certificates/dev-sidecar.ca.crt /etc/ssl/certs/a1b2c3d4.0

(将 a1b2c3d4 替换为实际哈希值)

更新证书存储:

sudo update-ca-certificates

验证是否生效:

openssl verify /usr/share/ca-certificates/dev-sidecar.ca.crt

现在应该输出 OK。

关键点

自签名证书需要 手动添加到受信任列表,否则默认会报 self-signed certificate 错误。

推荐使用 方法 1 全局信任该证书,而非禁用 SSL 验证(不安全)。

完成后,WSL Ubuntu 的 Python 应能正常通过 DevSidecar 代理访问网络。

你可能感兴趣的:(python)