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 代理访问网络。